.net自定义httpmodule错误页面问题

时间:2012-08-09 00:40:50

标签: asp.net httpmodule custom-error-pages

我的应用程序有一个用于处理友好URL的自定义HTTPModule。 这是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>

该模块还具有处理错误页面的逻辑。我现在遇到的问题是当一个以“。”结尾的网址的请求时被发送到服务器,我的模块都没有被触发,用户看到了默认的asp.net 404页面。

不确定发生了什么以及如何将用户重定向到我的自定义404页面。

我确实发现了与此相关的另一个问题,并且提供的解决方案是使用web.config文件中的.Net 4特定配置标记之一。目前我无法转移到.Net 4.所以,我正在寻找一个不同的解决方案。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我猜你正在使用http重定向来表示友好的网址。

如果应用程序在IIS7下,请检查您是否已安装以下功能:

控制面板 - &gt; Progams - &gt;关闭Windows功能 - &gt;万维网服务 - &gt;常见的HTTP功能 - &gt; 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>