maxJsonLength при использовании службы WCF с использованием Jquery
Я работаю над Google Map Marker V3.User может добавить Map Marker и дополнительную информацию, и эта информация хранится в базе данных SQL Server. Когда страница карты загружается в первый раз, я извлекаю все маркеры, хранящиеся в БД, и отображаю их на карте. для вызова Ajax я использую WCF и Jquery. Все работало нормально, но однажды я получил ошибку
"Ошибка во время сериализации или десериализации с использованием JSON JavaScriptSerializer. Длина строки превышает значение, установленное в свойстве maxJsonLength".
Для этого я увеличу размер maxJsonLength следующим образом:
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="5000000"/>
</webServices>
</scripting>
</system.web.extensions>
Так что сейчас мое приложение снова работает нормально. Мой вопрос заключается в том, существует ли какой-либо другой способ, чтобы я мог увеличить этот maxJsonLength во время выполнения, потому что мне нужно доставить этот проект моему клиенту, и если в будущем возникнет та же проблема, эта функция перестанет работать. Я также нашел другой пример на стеке потока. Могу ли я установить неограниченную длину для maxJsonLength в web.config?
Спасибо
1 ответ
Вы можете установить его на максимальное значение 2147483644.
Вероятно, у вашего приложения будут серьезные проблемы с производительностью, прежде чем вы достигнете максимального значения, так что оно будет неограниченным, поскольку у вас будут другие проблемы, прежде чем вы достигнете этой границы.
Есть проблемы с установкой очень высокого предела:
- Вы более уязвимы для атаки отказа в обслуживании
- Ваше приложение может замедлиться, и вы не получите никакой информации почему (увеличение размера полезной нагрузки)
Если бы я был тобой, я бы придерживался ценности, которую ты имеешь сейчас. И включите в операционную документацию информацию о том, что они видят, что ошибка должна увеличить значение.