Проблема
Когда я пытаюсь сделать запрос частичного обновления AJAX (с помощью элемента управления UpdatePanel) со страницы по умолчанию *1006* веб-сайта 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-адрес запроса равен "/", но мне бы очень хотелось понять, почему это происходит.