79

我复制了以前的项目并将其重命名。一旦我成功地重命名了所有命名空间并且它构建正确。运行应用程序时出现以下错误:

The following errors occurred while attempting to load the app.
- The OwinStartup attribute discovered in assembly 'User Manager Interface' referencing    startup type 'User_Manager_Interface.Startup' conflicts with the attribute in assembly   'Service Monitor Web Interface' referencing startup type  'Service_Monitor_Web_Interface.Startup' because they have the same FriendlyName ''. Remove or   rename one of the attributes, or reference the desired type directly.
To disable OWIN startup discovery, add the appSetting owin:AutomaticAppStartup with a value of "false" in your web.config.
To specify the OWIN startup Assembly, Class, or Method, add the appSetting owin:AppStartup with the fully qualified startup class or configuration method name in your web.config.

我发现如果我注释掉下面的第一行,那么错误就会消失。

//[assembly: OwinStartupAttribute(typeof(Service_Monitor_Web_Interface.Startup))]
namespace Service_Monitor_Web_Interface
{
public partial class Startup
{
    public void Configuration(IAppBuilder app)
    {
        ConfigureAuth(app);
    }
}
}

我将我的解决方案从 User_Manager_Interface 重命名为 Service_Monitor_Web_Interface。

我似乎无法找到任何具有旧名称的地方,但是它提到的错误中存在差异。

4

7 回答 7

174

这个问题我已经遇到过几次了,所以我会写下我遵循的程序作为对自己的提醒:

  1. 将所有旧解决方案名称替换为新名称。
  2. 导航到每个项目下的属性,并将程序集名称默认命名空间字段更改为新的解决方案名称。
  3. 转到解决方案文件夹并使用新的解决方案名称重命名所有项目文件夹。
  4. 删除binobj文件夹下的所有文件。
  5. 解决方案将无法加载项目。删除所有项目并再次添加它们。
  6. 重新构建项目。
于 2014-03-05T14:30:43.520 回答
31

如果您在同一个 bin 文件夹中有两个包含 OwinStartup 类的程序集,则会出现此问题。通常,您不应该为同一个 Web 应用程序创建两个 OwinStartup 类。

您可以通过检查您的 bin 文件夹来解决此问题。如果重命名后旧名称的程序集仍保留在 bin 文件夹中,您将收到此错误。要解决它,请从 bin 文件夹中删除所有内容。

于 2014-10-03T09:01:22.060 回答
12

重命名解决方案的程序集后,我遇到了同样的问题。

我通过确保 OwinStartupAttribute 引用我的新程序集名称来解决。

接下来是删除 bin 文件夹中的旧程序集。

于 2014-03-04T03:00:29.380 回答
8

我没有重命名我的解决方案,但我确实遇到了这个问题。我在任何地方都找不到与此相关的解决方案。我在同一台服务器上有 2 个单独的项目和一个 owin 启动类。我只是按照异常消息中的建议给了每个人一个不同的“友好名称”,然后它就解决了。我找到了一篇很好的文章:

欧文创业班

要重命名它,您需要做的就是在 OwinStartup 上添加一个字符串,如下所示:

[程序集:OwinStartup("ProductionConfiguration", typeof(StartupDemo.ProductionStartup2))]

于 2014-07-13T03:41:32.820 回答
3

在 web config appsetting 上添加以下标签

<appSettings>
   <add key="owin:AutomaticAppStartup" value="false" />   
</appSettings>
于 2017-02-21T13:47:50.010 回答
1

我有两个 ASP .NET MVC 5 项目,Project1 和 Project2。

问题是两个项目的 DLL 在同一个 bin 文件夹中,并且都使用 Owin 中间件。这意味着 Project1.dll 和 Project2.dll 存在于 Project2 的同一个 bin 文件夹中。

由于我在每个项目中只需要其中一个,所以我只删除了 Project2 bin 文件夹中未使用的 Project1.dll。

于 2017-03-08T10:22:26.113 回答
0

只需清理解决方案,它就可以解决问题;)

于 2016-03-30T08:47:05.690 回答