Проблема с настраиваемой страницей ошибки httpmodule .net

В моем приложении есть настраиваемый HTTPModule для обработки удобных URL-адресов. А вот и раздел модулей файла web.config.

<modules>
<remove name="ScriptModule"/>
<remove name="Session"/>
<add name="Session" type="System.Web.SessionState.SessionStateModule" preCondition=""/>
<add name="NHibernateSessionModule" type="MyApp.Core.NHibernateBase.NHibernateSessionModule"/>
<add name="ApplicationModule" type="MyApp.ApplicationModule"/>
<add name="URLDispatcher" type="MyApp.URLDispatcher"/>
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</modules>

В модуле также есть логика для обработки страниц ошибок. Проблема, которая у меня есть сейчас, заключается в том, что запрос с URL-адресом, заканчивающимся на '.' отправляется на сервер, ни один из моих модулей не запускается, и пользователь видит страницу asp.net 404 по умолчанию.

Не уверен, что происходит и как перенаправить пользователей на мою пользовательскую страницу 404.

Я нашел еще один вопрос, связанный с этим, и предоставленное решение заключалось в использовании одного из конкретных тегов конфигурации .Net 4 в файле web.config. На данный момент я не могу перейти на .Net 4. Итак, я ищу другое решение. Какие-либо предложения?


person Kumar    schedule 09.08.2012    source источник


Ответы (1)


Я предполагаю, что вы используете перенаправление http для дружественных URL-адресов.

Если приложение работает под IIS7, убедитесь, что у вас установлена ​​следующая функция:

Панель управления -> Программы -> Отключить функции Windows -> Службы Интернета -> Общие функции HTTP -> Перенаправление HTTP

И тогда вам нужно настроить свой собственный http-модуль не только в

<system.web>
    <httpModules>
        <add name="CustomModule" type="NameSpace.ClassName, AssemblyName" />
    </httpModules>
</system.web>

но и в

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
        <add name="CustomHttpModule" type="NameSpace.ClassName" />
    </modules>
</system.webServer>
person keep fool    schedule 09.08.2012