2012-08-09 30 views
0

我的應用程序處理友好的URL的自定義HTTP模塊。 這裏是web.config文件的模塊部分。.NET自定義的HttpModule錯誤頁面問題

<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頁。

我沒有找到與此相關的另一個問題,並且提供的解決方案是使用在web.config文件中的.NET 4的具體配置的標籤之一。目前我無法移動到.Net 4.所以,我正在尋找不同的解決方案。有什麼建議麼?

回答

0

我猜你是使用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>