2010-12-13 93 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应用程序池。