EndRequest не запускается на IIS, когда ресурс отсутствует - PullRequest
0 голосов
/ 02 февраля 2010

У меня есть HttpModule, который подключается к событию EndRequest на IIS6 с зарегистрированным обработчиком подстановочных знаков, и он работает нормально, пока запрос заканчивается на странице .aspx, но НЕ, если URL отсутствует (404).

Я полагаю, это из-за того, что staticfilehandler завершает запрос, но есть ли хорошее решение для этой проблемы?

Я пробовал такое же решение в IIS7 (конвейерный режим), и там оно отлично работает.

1 Ответ

0 голосов
/ 08 февраля 2010

Первое, что я бы попробовал, это сказать IIS не проверять, существует ли файл, что позволило бы передать запрос в HttpModule. Вы можете сделать это для любого конкретного сопоставления файлов, включая подстановочный знак.

Если вышеупомянутое не вариант, в худшем случае вы можете добавить обработчик по умолчанию для ошибки 404 в файле web.config, чтобы, если HttpModule не может перехватить событие, у вас все еще есть сделай что-нибудь'. В зависимости от того, что вы пытаетесь выполнить в событии EndRequest, вы все равно сможете использовать обходной путь.

<customErrors defaultRedirect="ErrorPage.aspx" mode="On">   
    <error statusCode="404" redirect="filenotfound.aspx" />
</customErrors>
...