0

将 ASP.NET MVC 2 Web 应用程序发布到我的学校 IIS 7.5 服务器后,我在初始加载时收到 403 错误,如果我尝试调用 /Home/About/Index 等路由,则会收到 404 错误

我什至尝试过发布默认的 ASP.NET MVC 2 示例应用程序,但没有成功。Web 服务器似乎没有选择任何路由,并且它正在确定 /Home/About/Index 是目录查找。有没有其他人遇到过类似的问题?

我与系统管理员交谈并确认启用了 HTTP 重定向和 HTTP 错误。在四处寻找之后,我看到了一些关于由于发布位置不是 webroot 而导致路由不起作用的评论。对为什么有任何评论?

目前系统管理员具有以下网站目录结构。这可能是问题吗?

  • 默认网站
    • 2010年秋季
      • 123级
      • 321类
    • 2011年春季

我已经向系统管理员和我的教授寻求帮助,但是他们都不熟悉 MVC 和路由。任何帮助表示赞赏。

当然,我可以放弃我的想法,只使用 Web 窗体和 SOAP,就像我在其他课程中所做的那样,但我想了解更多关于 ASP.NET 和 REST 中的 MVC。谢谢您的帮助!

4

3 回答 3

2

所以看起来系统管理员在需要集成时将应用程序池设置为经典模式。在默认的 ASP.NET MVC 2 示例应用程序中,我将 Global.asax 修改为:

routes.MapRoute(
    "Default",
    "{controller}.aspx/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

并导航到 /Home.aspx/About,一切正常。

现在我只需要说服我们的系统管理员更改为集成。

参考资料:http ://server.dzone.com/news/routes-iis-classic-and

编辑:我能够让系统管理员切换到集成。一切似乎都运行良好。

于 2011-02-10T20:16:01.610 回答
1

如果您使用默认路由,则正确的 url 应该是/Home/About. 至于在 II 7 上部署 ASP.NET MVC 应用程序,您可能需要阅读以下博客文章

于 2011-02-10T19:11:07.927 回答
0

会不会是你需要设置 IIS 来映射通配符?我知道这适用于 IIS 6,但它也可能适用于 7。

http://www.techdreams.org/microsoft/aspnet/how-to-fix-404-errors-of-aspnet-mvc-website-deployed-on-iis-6-windows-server-2003/2572-20090515

于 2011-02-10T20:02:30.567 回答