Asp.net mvc 4 未找到MVC4文件HTTP404错误

Asp.net mvc 4 未找到MVC4文件HTTP404错误,asp.net-mvc-4,Asp.net Mvc 4,我的MVC应用程序有问题。当我在本地运行此应用程序时,localhost能够找到默认页面,并且默认路由似乎正常工作: routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Default", id = UrlParameter.Optional } // Param

我的MVC应用程序有问题。当我在本地运行此应用程序时,localhost能够找到默认页面,并且默认路由似乎正常工作:

routes.MapRoute(
    "Default", // Route name
    "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Default", id = UrlParameter.Optional } // Parameter defaults
);
当我将构建的应用程序FTP到托管站点时。我得到“未找到或找不到资源”错误。因此,我将路由更改为:

routes.MapRoute(
    name:   "NewRoute", // Route name
    url:    "FolderUnderRootDirectory/{controller}/{action}/{id}", // URL with parameters
    defaults: new { controller = "Home", action = "Default", id = UrlParameter.Optional } // Parameter defaults
);
这似乎也不能解决问题

FolderUnderRootDirectory不是不是虚拟目录它只是应用程序所在的文件夹。该文件夹与应用程序在visual studio 2010中发布到的文件夹相同

我尝试过更改路由,并将默认页面更改为其他页面


我需要别人的帮助。

我觉得您需要设置一个虚拟目录,或者将其移动到根目录。尝试在IIS上设置您的本地应用程序,而不是内置在IISExpress上,这样您就可以模拟生产环境并进行微调。我已经设置了一个虚拟目录,在该目录下放置了应用程序,并与之斗争了2天。它在那里不起作用*它在IIS上本地运行find,没有任何问题。这是唯一的托管网站,我没有得到它的工作。我很难将其作为应用程序放在根目录中,因为这意味着必须备份现有网站的bin目录,并且可能需要处理停机时间(据我所知,您不能在不将文件夹转换为虚拟目录的情况下丢弃子文件夹中有/bin目录的站点并使其工作。请尝试以下操作:创建一个本地IIS站点,将IIS文件夹指向/somefolder,然后将您的站点放入/somefolder/someotherfolder,并在运行调试h时从浏览器调用它,而不是VS,如同VS一样。)因为隐藏东西的倾向是在你背后进行的。我很确定这不会起作用。就我个人而言,我只知道在IIS上托管网站的两种方法。在创建网站时声明的根目录中。在子文件夹中,只要你将其设为虚拟目录(当然,您现在不得不访问mysite/virtualsite/)会带来不便。如果根站点有一个/bin目录,子文件夹有一个/bin目录,IIS会一次加载所有DLL,这在逻辑上会造成严重破坏。我建议您现在使用虚拟目录,如果可能的话,可以查看“区域”结合这两个网站。在我读到的时候,尝试两种解决方案。祈祷好运,然后把剩下的头发撕下来。