В Asp.net приложении, использующем UpdatePanel, столкнулся с ошибкой "При обработке запроса от сервера обнаружена неизвестная ошибка. Код состояния, возвращенный сервером: 500". Ошибка не о чем. Странно, что на одних аналогичных страницах все работало, на других тот же самый код приводил к ошибке.
Немного о приложении. На странице элемент GridView с несколькими тысячами строчек, в каждой строчке кнопка "Показать", по клику на которую на странице без перезагрузки открывается подробная информация, соответствующая записи в строке.
По мере тестирования понял, что только при достижении какого-то заветного количества контролов, стала проявляться ошибка.
Для отладки добавил на aspx странице после тэга <asp:ScriptManager> код на JavaScript:
<script type="text/javascript" language="javascript"> Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); function EndRequestHandler(sender, args) { if (args.get_error() != undefined) { alert(args.get_error().message.substr(args.get_error().name.length + 2)); args.set_errorHandled(true); } } </script>
В результате страница стала выдавать такое окно:
Текст в окне соответствовало тому, что был обнаружен в панели разработчика.
Отключив в <Triggers> асинхронный постбэктриггер, продолжил отладку. В результате получил сообщение об ошибке "Превышена максимальная длина запроса". Это уже оказалось чем-то.
Решение. Для решения проблемы необходимо изменить параметр "maxRequestLength". Для этого в web.config в ноде <system.web> надо добавить параметр и установить ему большое значение, например 2^14. По умолчанию, это значение равно 4096.
<httpRuntime maxRequestLength="16384" />
Если нет возможности поправить web.config, то можно добавить параметр MaxRequestLength в приложение.