2011-03-16 83 views
3

這裏的情況:asp.net MVC 3,靜態資源使用 「本地IIS Web服務器」 當404'ing

  1. ASP.NET使用剃刀作爲視圖引擎MVC 3應用程序。
  2. 在Visual Studio開發服務器(Cassini)下工作正常
  3. 然而,當我切換到「使用本地IIS Web服務器」,網站的功能,但每個靜態資源404s(再次,卡西尼沒有問題) 。
  4. 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 
     ); 
    } 

回答

5

當然,它原來是一些非常簡單:有根Web.config定義僅僅是查看目錄的Web.config

,而不是一個HttpHandler
<handlers> 
     <remove name="BlockViewHandler" /> 
     <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" /> 
    </handlers> 

顯而易見,但希望通過張貼在這裏可以節省別人在如此明顯的事情上浪費時間。有關更多信息,請參見http://haacked.com/archive/2008/06/25/aspnetmvc-block-view-access.aspx

+0

這解決了我們的問題,但也必須在''部分添加''行 – bstoney

相關問題