无法将ASP.NET MVC 4应用程序部署为Azure网站

时间:2013-01-06 12:18:33

标签: azure asp.net-mvc-4 dll

我有一个ASP.NET MVC 4应用程序,我正在尝试部署为Azure网站。我的应用在我的本地环境中运行良好。当我将网站发布到azure时,我收到以下错误:

Multiple types were found that match the controller named 'Root'. This can happen if the route that services this request ('') does not specify namespaces to search for a controller that matches the request. If this is the case, register this route by calling an overload of the 'MapRoute' method that takes a 'namespaces' parameter.

The request for 'Views' has found the following matching controllers:
MyApp.HD.Web.Controllers.RootController
MyApp.Web.Controllers.RootController

为什么我会在Azure上收到此错误但不在本地?我无法弄清楚如何绕过它。

谢谢

1 个答案:

答案 0 :(得分:1)

我以前遇到过这个问题。让我解释一下它为什么会发生。

我们在解决方案中添加了一个新项目,我们称之为NewProject。此项目设置不正确,因此我们将其重新创建为NewProject2。项目设置完成后,我们将其重命名为NewProject。这是问题开始的时候。在某些构建配置下,我们得到了与您相同的错误。它抱怨名称空间NewProjectNewProject2的模糊控制器。执行find-in-files不会返回NewProject2的匹配项。真是令人沮丧。鉴于这仅在某些构建配置下发生,这是一个重要的迹象,表明问题出在bin文件夹中的 left-over 引用。做干净似乎没有解决问题。最终解决方案是进行完整的代码清除。 DLL通常不会被提交到源代码控制。我备份并删除了所有代码并从源代码管理中恢复。问题不再发生。

值得一提的是,这个问题不是全球性的。它只发生在某些开发者机器上。我认为那些有影响的是在create1 / create2 / rename2 / delete1进程中从源代码控制中得到最新的那些。

  1. 尝试在受影响的构建配置中执行清理和重建。
  2. 尝试手动删除bin和obj文件夹。
  3. 尝试完整的代码清除