首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >难以将ASP.NET MVC项目部署到宿主提供商。404错误

难以将ASP.NET MVC项目部署到宿主提供商。404错误
EN

Stack Overflow用户
提问于 2010-02-10 07:08:01
回答 3查看 523关注 0票数 1

我将VS2008 ASP.NET MVC 1.0项目发布到本地文件夹,然后将其发布到主机上的虚拟目录中。我试图运行,它抱怨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上的索引方法对参数为2的Details方法做了一个RedirectAction。
  4. 然后浏览器点击http://www.example.com/myApp/Home/Details/2。在这一点上,我得到404没有找到。

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

代码语言:javascript
复制
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);
}

那我错过了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-02-22 08:30:40

嗯,答案一直盯着我的脸:

链接解释了如果您的主机是IIS6 ( goDaddy是哪个)或IIS7经典模式,那么该做什么。

票数 2
EN

Stack Overflow用户

发布于 2010-02-10 09:10:08

您只需要部署MVC dll。路由随SP1而来。我建议:

  • 创建一个返回基本信息的测试/状态控制器
  • 使用Firebug或Fiddler类工具查看HTTP上发生了什么
  • 尝试查找配置中的任何问题:
    • 确保web.config中有路由和MVC Http模块/处理程序
    • 确保您的扩展是正确的,特别是在IIS 6上(例如。如果您是指定的.mvc,那么它应该在您的路由以及IIS配置和web.config中)
    • IIS 6的配置可以是trickey
    • AFAIK (对不起,不知道这一点,但是) IIS 7配置也应该在您的web.config中。

我也经历过类似的情况,不幸的是,我的经验是(主要是IIS 6),我不得不一次又一次地检查和检查所有这些点,并尝试和错误的配置来使它工作。

票数 2
EN

Stack Overflow用户

发布于 2010-02-10 17:26:11

确保服务器安装了ASP.NET MVC1.0RTM--因为它拥有运行mvc站点所必需的所有all (路由、MVC等)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2235022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档