1

好的,所以部署到本地 IIS 我的项目工作正常。部署到在线主机,我只得到目录列表。

(

使用 VisualStudio 2012、mvc3、.net 4.5 发布到 Web 设置:

  1. 发布方式:FTP
  2. 服务器:www."mysite".co.za
  3. 站点路径:“空白”(我的理解是我是直接发布到app目录,所以我的根目录包含bin、views、global.asax、web.config)
  4. 目标网址:http://www."mysite".co.za
  5. 数据库已经启动并在 web.config 中配置

)

如果单击 Views 目录,我会收到 404 错误。

我接下来要做的是查看它是否执行 global.asax,所以我添加了代码以在 RegisterRoutes 中引发异常(从 Application_Start() 调用)

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

      routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults        
      );

      throw new Exception("This is my custom error: Currently in RegisterRoutes");      
    }

真正的鲍勃,我得到以下信息(但仍然只有当我点击我的查看目录时):

“/”应用程序中的服务器错误。

这是我的自定义错误:目前在 RegisterRoutes

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。 异常详细信息: System.Exception:这是我的自定义错误:当前在 RegisterRoutes

所以我的问题是: 1. 为什么我的 root 不会选择 global.asax?2. 如何查看 routes.MapRoute(...) 之后代码执行的结束位置?(也就是说,在删除 throw Exception 之后;))

问候

4

2 回答 2

1

这也发生了。通常这是由于 Web 配置中缺少一些设置。具体来说,这个问题提供了答案。编辑 web 配置以加载所有请求的所有托管模块。

<system.webServer><modules runAllManagedModulesForAllRequests="true"></modules></system.webServer>
于 2013-09-11T05:33:25.173 回答
0

您可能没有在您的服务器上注册 IIS。请使用注册aspnet_regiis -i,然后在 IIS 中的应用程序池下检查 .net 版本。

于 2013-09-11T05:32:16.190 回答