考慮一個定位和提供文件的StaticResourceController。ASP.NET MVC不使用控制器在IIS7中顯式文件路由
我已經設置了「favicon.ico的」明確的路線將處理使用StaticResourceController該文件的請求:
routes.MapRoute(
"favicon",
"favicon.ico",
new { controller = "StaticResource", action = "Get", file = "favicon.ico", area="root"},
new[] { "Dimebrain.Mvc.Controllers" }
);
在IIS6做了http://localhost:8080/favicon.ico請求時出現預期的結果。
不幸的是,當我部署到IIS7 http://localhost/favicon.ico返回一個IIS生成的404,大概是因爲它實際上是在Web根文件夾中查找它不存在的favicon.ico。
我在StaticResourceController中發生了足夠的事情,這對我的應用程序來說不是一件好事,特別是因爲它是多租戶,favicon.ico文件可以更改。我已經設置了我的Web服務器模塊來處理每個請求並覆蓋RouteCollection以忽略使用RouteExistingFiles進行的文件檢查。
爲什麼UrlRoutingModule在IIS7中進入我的方式並強制從磁盤(404)提供靜態文件?
控制器方法是否正在執行? – 2010-03-29 22:44:01
它在IIS6中,在IIS7中完全被繞過。 – 2010-03-30 07:14:30