DefaultAppPool
集成管道模式。这是我的路线,这是一个非常基本的网站:
routes.MapRoute(
"DefaultRoute", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional // Parameter defaults
});
routes.MapRoute(
"UploadRoute", // Route name
"Upload/{id}", // URL with parameters
new { controller = "Upload", action = "Index", id = UrlParameter.Optional
});
尝试转到〜/ Home或〜/ Upload都会导致404错误。远程浏览root~ /目录导致页面只是坐着等待,如果我尝试在本地访问root,我会收到403.14错误。我很难过,我认为ASP.NET MVC和IIS7运行集成模式应该很简单。感谢。
答案 0 :(得分:1)
第一件事:最具体的路线应该在声明的顶部。您的默认路由应该是最后创建的路由,否则将忽略所有后续路由。
返回主题:您的DefaultAppPool是否在.NET 4.0下运行?也许这link可以帮到你?看起来更像是IIS的配置问题?
答案 1 :(得分:0)
你可能会陷入像js或css文件这样的非动作文件。在开头添加一个忽略路由。
routes.IgnoreRoute("*.html|js|css|gif|jpg|jpeg|png|swf");
您也可以尝试使用RouteDebugger并查看它的位置或不在您的情况下 http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx
答案 2 :(得分:0)
我遇到了同样的问题,我确保将默认应用程序池设置为.net 4并且它有效。如果我选择在应用程序上集成的.net 4 classic或.net 4的应用程序池,我会收到该错误..它只在我选择默认应用程序池时才有效。这是在2008年的新服务器安装上,除此之外没有安装任何其他内容MVC和Webpages框架(webmatrix)。太奇怪了。我希望这可以帮助别人。
答案 3 :(得分:-1)
另外,请检查IIS7中是否启用了HTTP重定向。