Проблема
Когда я пытаюсь сделать запрос на частичное обновление AJAX (используя элемент управления UpdatePanel) со страницы по умолчанию веб-сайта IIS7, он терпит неудачу — вместо того, чтобы возвращать html для обновления, он возвращает всю страницу , что затем приводит к тому, что Javascript MS AJAX выдает синтаксический анализ.
Предполагаемая причина
Я сузил причину до двух проблем: сделать запрос AJAX на страницу по умолчанию, когда у меня зарегистрирован определенный пользовательский модуль http. Частичный запрос рендеринга на http://localhost завершится ошибкой, но частичный запрос рендеринга на http://localhost/default.aspx будет работать нормально. Кроме того, если я удалю следующую строку в своем пользовательском HttpModule:
_application.PreRequestHandlerExecute += OnPreRequestHandlerExecute;
Частичный рендеринг AJAX будет работать правильно. Странно да?
Еще одна странная вещь... Если я посмотрю на файл trace.axd, я увижу, что при сбое частичного запроса на отрисовку регистрируются два POST-запроса для одного частичного запроса на отрисовку — один, где default.aspx страница выполняется успешно (информация трассировки, такая как page_load, регистрируется), но содержимое не создается, а вторая, похоже, фактически не выполняется (информация трассировки не регистрируется), но создает содержимое (HTTP_CONTENT_LENGTH больше 0).
Пожалуйста, помогите! Если кто-нибудь, хорошо разбирающийся в модулях HTTP или модуле MS AJAX Http, может объяснить, почему это происходит, я был бы очень признателен. Как бы то ни было, очевидная работа заключается в том, чтобы просто перенаправить на default.aspx, если URL-адрес запроса равен «/», но я действительно хотел бы понять, почему это происходит.