IIS 7集成模式的ASP.NET MVC 404错误

时间:2010-07-14 16:24:13

标签: asp.net-mvc iis asp.net-mvc-2 iis-7

嘿大家好当我尝试访问我的ASP.NET MVC 2站点时,我收到404错误。我使用II7托管此站点,并且我将我的站点设置为使用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运行集成模式应该很简单。感谢。

4 个答案:

答案 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重定向。