我的应用程序有一个用于处理友好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.所以,我正在寻找一个不同的解决方案。有什么建议吗?
答案 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>