我在 .Net 4.0 上的 IIS 7.5 上部署了一个 Asp.Net MVC 2 Web 应用程序。当我选择应用程序池作为Asp.Net v4.0 Classic时,出现以下错误。
HTTP Error 403.14 - Forbidden
The Web server is configured to not list the contents of this directory.
当我选择应用程序池作为Asp.Net v4.0 Integrated时,相同的应用程序工作正常。有谁知道这是什么原因?
更新:我按照以下网址中的步骤操作。
http://www.asp.net/mvc/tutorials/using-asp-net-mvc-with-different-versions-of-iis-cs
我为 .mvc 扩展添加了一个映射,并且还修改了路由,如下所示。
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}.mvc/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Root",
"",
new { controller = "Home", action = "Index", id = "" }
现在下面的 url 工作正常,我可以看到 Home/Index 页面。
http://myapp/home.mvc
但这仍然给出相同的错误(HTTP 错误 403.14 - 禁止)
http://myapp/
这应该有效,因为我已将 Root 映射到 Home/Index 操作。
更新
这是在 Win 7 Ultimate Turbo Gold Premium 64 位系统上的 IIS 7.5 上。应用程序池以集成模式运行。当我切换到经典时,一切都像宣传的那样工作。如果我在经典模式下运行我的应用程序,则会按应有的方式授予公共访问权限。所以这里有一个问题:如果我愿意,如何在集成模式下运行它?