2010-12-13 130 views
15

我在我們的新產品之一中使用asp.net 4路由,並且它在開發環境(Visual Studio webserver)中工作正常。但是當我將它移動到遠程iis進行測試時,它不起作用。我得到的只有404錯誤頁面。我試着將以下內容添加到web.config中,但仍然出現錯誤。asp.net 4路由不工作在iis 7

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true">  
    <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    </modules> 
<validation validateIntegratedModeConfiguration="false" /> 
</system.webServer> 

任何想法如何解決這問題?

+0

如果您啓用運行狀況監視以登錄到事件日誌(我相信它默認情況下,您只需打開它),則會捕獲一些內部框架錯誤,並且可能會爲您找到某些內容。 – 2010-12-13 13:40:16

+0

謝謝,但沒有幫助 – Aneef 2010-12-15 04:57:59

回答

35

我得到這個解決方案......添加下面的代碼在web.config中烏爾.. 和不要忘了你的模塊中添加runAllManagedModulesForAllRequests =「真」 ..

<system.webServer> 
     <modules runAllManagedModulesForAllRequests="true"> 
      <remove name="UrlRoutingModule"/> 
      <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
     </modules> 
     <handlers> 
      <add 
      name="UrlRoutingHandler" 
      preCondition="integratedMode" 
      verb="*" path="UrlRouting.axd" 
      type="System.Web.HttpForbiddenHandler, System.Web, 
       Version=2.0.0.0, Culture=neutral, 
       PublicKeyToken=b03f5f7f11d50a3a"/> 
     </handlers> 
     </system.webServer> 
+3

我不確定所有的代碼是否必要,我的webforms ASP.Net 4.0應用程序只需要runAllManagedModulesForAllRequests =「true」爲添加它的工作 - 其他更改不需要。 – Richard 2011-03-14 11:30:39

+0

謝謝。這幫了很多。我同意@理查德。 – 2011-04-14 15:08:29

+5

''是爲我工作的。我花了3個小時試圖弄清楚這一點。 – 2011-04-19 02:24:15

2

注:您必須將應用程序池設置爲Asp.net 4.0應用程序池,因爲路由不適用於Asp.net 4.0 Classic應用程序池。