【问题标题】:Trouble deploying ASP.NET MVC project to a hosting provider. 404 errors将 ASP.NET MVC 项目部署到托管服务提供商时遇到问题。 404 错误
【发布时间】:2010-02-10 07:08:01
【问题描述】:

我将我的 VS2008 ASP.NET MVC 1.0 项目发布到本地文件夹,然后通过 FTP 将其发送到主机上的虚拟目录。我尝试运行,它抱怨 System.Web.Mvc.dll 丢失,所以我复制了它。

之后我得到一个 404。现在我知道它访问了我的 HomeController.Index 方法,因为它执行了 RedirectToAction。下一个动作(在同一个控制器中)是导致问题的原因。

我感觉路由工作不正常。

我用 Fiddler 观看了该应用程序:

  1. 我去http://www.example.com/myApp
  2. 导致 301(永久重定向)到 http://www.example.com/myApp
  3. 然后我得到一个 302(重定向到 /myApp/Home/Details/2)。这是正确的,因为我在 HomeController 上的 Index 方法使用参数 2 对 Details 方法执行了 RedirectAction。
  4. 然后浏览器点击http://www.example.com/myApp/Home/Details/2。此时我收到 404 Not found。

因此,尽管以下代码是 global.asax,但 /Home/Details/2 似乎没有映射到我的控制器上:

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 = "" }  // Parameter defaults
    );

}

protected void Application_Start()
{
    RegisterRoutes(RouteTable.Routes);
}

那么我错过了什么?

【问题讨论】:

    标签: asp.net-mvc visual-studio-2008 deployment


    【解决方案1】:

    您只需要部署您的 MVC dll。路由随 SP1 提供。我建议:

    • 创建返回基本信息的测试/状态控制器
    • 使用 Firebug 或 Fiddler 之类的工具查看 HTTP 上发生的情况
    • 尝试找出您的配置存在的任何问题:
      • 确保您的 web.config 中有路由和 MVC Http 模块/处理程序
      • 确保您的扩展是正确的,尤其是在 IIS 6 上(例如,如果您使用 .mvc,它应该在您的路由以及 IIS 配置和 web.config 中)
      • IIS 6 配置可能很棘手
      • AFAIK(抱歉,对此不太了解,但是)IIS 7 配置也应该在您的 web.config 中。

    我也遇到过类似的情况,但很遗憾,我的经历是(主要是在 IIS 6 上),我不得不一遍又一遍地仔细检查和检查所有这些要点,并通过反复试验来获得它在职的。

    【讨论】:

    • 我做了一些你建议的事情(请参阅更新的问题),但没有奏效。我听说过 IIS6,但这是 GoDaddy - 我无法控制它。
    【解决方案2】:

    嗯,答案一直盯着我看:

    link 解释了如果您的主机是 IIS6(goDaddy 是)或 IIS7 经典模式该怎么办。

    【讨论】:

      【解决方案3】:

      确保服务器已安装 ASP.NET MVC 1.0 RTM - 因为它具有运行 MVC 站点所需的所有 dll(路由、mvc 等)。

      【讨论】:

        猜你喜欢
        • 2019-09-27
        • 1970-01-01
        • 2017-02-04
        • 1970-01-01
        • 2020-09-07
        • 2021-05-13
        • 1970-01-01
        • 2010-09-08
        • 1970-01-01
        相关资源
        最近更新 更多