【问题标题】:MVC Site not working when published to web hosting provider发布到 Web 托管服务提供商时,MVC 站点无法正常工作
【发布时间】:2017-10-10 15:27:17
【问题描述】:

我正在尝试发布一个 MVC 站点。网站/应用程序都是为 .NET Framework 4 设置的。当网站发布时,MVC 页面会出现以下错误:

“您要查找的资源已被删除、更改名称或暂时不可用。”

另外,如果我尝试调出一个测试 aspx 文件,我会收到此错误:

“找不到资源。”

我执行的第一个测试是删除 web.config。此时,我尝试再次调出 MVC 页面并显示相同的错误:

“您要查找的资源已被删除、更改名称或暂时不可用。”

但是,如果我现在尝试调出一个测试 aspx 页面,我实际上得到了该页面:

1 + 2 = 3

测试 aspx 页面只包含以下内容:

<html>
<body>
1 + 2 = <%=(1+2).ToString() %>
</body>
</html>

任何有关下一步检查的帮助将不胜感激。在提到添加的地方看到了类似的线程:

<customErrors mode="Off" />

<asp scriptErrorSentToBrowser="true"/>

但是在打开 MVC 页面时仍然给我同样的错误。任何有关如何继续修复此 MVC 站点的帮助将不胜感激。谢谢。

更新 #1

我在整个项目中搜索了关键字“routes.MapRoute”,在RouteConfig.cs中只找到了一次:

public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

我正在测试的页面是:

http://.../Home/Index

这是返回的页面:

“您要查找的资源已被删除、更改名称或暂时不可用。”

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-4 iis


    【解决方案1】:

    我发现了问题!问题是网站托管服务提供商为 IIS 6.0 设置了网站。在这种情况下,有两种选择:

    • 更新托管站点以支持 IIS 7.0。这是我的解决方案,解决了问题

    • 将 MapRoute 设置为运行“假”aspx 页面:(仅当您无法将托管更新到 IIS 7.0 时才执行此操作):

      // IIS 6.0 路线.MapRoute( 名称:“默认”, url: "typehereanything.aspx/{controller}/{action}/{id}", 默认值:新 { 控制器 =“主页”,操作 =“索引”,id = UrlParameter.Optional } );

    不建议使用第二种方法,因为现在您必须将“typehereanything.aspx”插入每个 URL:http://.../typehereanything.aspx/Home/Index

    这两个选项中的任何一个都解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-10
      相关资源
      最近更新 更多