开发环境C# 使用的是VS2010 直接新建的一个MVC4.0 程序。没做任何改动。本地调试和发布本地IIS 没有任何问题。
但是在使用阿里云虚拟主机的时候就会报错:
* 找到多个与名为“Home”的控制器匹配的类型。如果为此请求(“{controller}/{action}/{id}”)提供服务的路由在搜索匹配此请求的控制器时没有指定命名空间,则会发生此情况。如果是这样,请通过调用含有“namespaces”参数的“MapRoute”方法的重载来注册此路由。
解决方法:
RouteConfig.cs 里
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
// defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional }
/* 默认生成的是没有下面这句话的,不加的话本地调试都没有问题
* 关键是在使用阿里云虚拟主机的时候就会报错:
* 找到多个与名为“Home”的控制器匹配的类型。如果为此请求(“{controller}/{action}/{id}”)提供服务的路由在搜索匹配此请求的控制器时没有指定命名空间,则会发生此情况。
*如果是这样,请通过调用含有“namespaces”参数的“MapRoute”方法的重载来注册此路由。
*/
, namespaces: new string[] { "Mvc4Application_rxh.Web.Controllers" } //“Mvc4Application_rxh.Web”用你的命名空间来替换。
);