0

我有一个 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 而不是本地收到此错误?我不知道如何绕过它。

谢谢

4

1 回答 1

1

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

我们在解决方案中添加了一个新项目,我们称之为NewProject。该项目设置不正确,因此我们将其重新创建为NewProject2. 项目设置并运行后,我们将其重命名为NewProject. 这是问题开始的时候。在某些构建配置下,我们遇到了与您相同的错误。它抱怨带有命名空间NewProjectNewProject2. 在文件中查找没有返回匹配项NewProject2。真是令人沮丧。鉴于这仅在某些构建配置下发生,这是一个很大的迹象,表明问题出在遗留问题上bin 文件夹中的引用。进行清洁似乎无法解决问题。最终的解决方法是彻底清除代码。DLL 通常不会提交到源代码管理。我备份并删除了所有代码,然后从源代码管理中取回。该问题不再出现。

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

  1. 尝试在受影响的构建配置中进行清理和重建。
  2. 尝试手动删除您的 bin 和 obj 文件夹。
  3. 尝试完整的代码清除
于 2013-01-06T12:29:08.480 回答