這裏的情況:asp.net MVC 3,靜態資源使用 「本地IIS Web服務器」 當404'ing
- ASP.NET使用剃刀作爲視圖引擎MVC 3應用程序。
- 在Visual Studio開發服務器(Cassini)下工作正常
- 然而,當我切換到「使用本地IIS Web服務器」,網站的功能,但每個靜態資源404s(再次,卡西尼沒有問題) 。
- ASP.NET 4.0,Windows 7 Ultimate x64,IIS 7.5,集成管道,網絡服務作爲應用程序池標識。
具體來說,試圖訪問已知存在的靜態文件(即刪除應用程序文件,特別是具有路徑信息的DLL等,並且它沒有問題地提供)的例外。同樣,這種情況發生的所有靜態文件,包括即/public/scripts/jquery.js:在路徑
錯誤:/favicon.ico 原始地址:/favicon.ico 消息:路徑「/favicon.ico ' 沒找到。 來源:System.Web程序 堆棧跟蹤:在System.Web.HttpNotFoundHandler.ProcessRequest(HttpContext的上下文) 在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在System.Web.HttpApplication .ExecuteStep(IExecutionStep步驟,布爾& completedSynchronously) TargetSite:空隙的ProcessRequest(System.Web.HttpContext)NLogLogger.Fatal => NLogLogger.Fatal => LoggerImpl.Write
我感到困惑。我已經驗證了此機器上的VS Development Server和本地IIS Web服務器下的測試默認ASP.NET MVC 3應用程序運行良好。
我的希望是別人遇到了類似的問題。如果有幫助,這裏是我的路線:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("favicon.ico");
routes.MapRoute(
"Login", // Route name
"login", // URL with parameters
new { controller = "Session", action = "Create" } // Parameter defaults
);
routes.MapRoute(
"Logout", // Route name
"logout", // URL with parameters
new { controller = "Session", action = "Delete" } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
這解決了我們的問題,但也必須在''部分添加''行 –
bstoney