2011-10-04 68 views
0

我已經在RouteTable.Routes中註冊了自定義的asp.net路由。生產環境中的ASP.NET路由

routes.MapPageRoute(
      "View Service",      
      "home/services/{*ServiceName}", 
      "~/home/displayservice.aspx" 
     ); 

我的應用程序使用ASP.NET 4.0路由系統,和一切工作正常在開發機器上,當我運行從Visual Studio調試的網站。

當我的網站轉移到IIS7,導航到

http://new.komplus.ua/home/services/viruses/antivirus/ 

,或者應該由路由系統來處理其他任何路徑當路由沒有發生。結果,我從服務器收到404錯誤。

我確定我已將global.asax和/home/displayservice.aspx複製到Web服務器,並且在更新後重新啓動了網站和應用程序池,但路由仍不會發生。

其他非路由頁面加載正常。

與ASP.NET VS4調試環境相比,是否有必須完成IIS的任何特定配置才能使ASP.NET 4路由起作用?

回答

0

爲了使ASP.NET 4.0路由在IIS7中工作,需要web.config將webServer元素刪除。例如:

<system.webServer>  
    <modules runAllManagedModulesForAllRequests="true">  
    </modules>  
</system.webServer> 

在Visual Studio環境中,在web.config中即使沒有此指令也會發生路由,這並不是必需的。