【问题标题】:Owin error with ASP.NET MVC applicationASP.NET MVC 应用程序出现 Owin 错误
【发布时间】:2015-08-21 01:06:24
【问题描述】:

我有一个在本地机器上运行良好的 ASP.NET 应用程序。我刚刚使用网络部署将它上传到服务器。当我尝试查看该网站时出现以下错误:

在尝试加载应用程序时出现以下错误。 - 在引用启动类型“Gators3.Startup”的程序集“Gators3”中发现的 OwinStartup 属性与引用启动类型“MyFirstProject2.Startup”的程序集“MyFirstProject2”中的属性冲突,因为它们具有相同的 FriendlyName ''。删除或重命名属性之一,或直接引用所需的类型。 要禁用 OWIN 启动发现,请在 web.config 中添加值为“false”的 appSetting owin:AutomaticAppStartup。 要指定 OWIN 启动程序集、类或方法,请在 web.config 中添加带有完全限定的启动类或配置方法名称的 appSetting owin:AppStartup。

我尝试在整个解决方案中搜索字符串“MyFirstProject2”,但没有找到任何结果。该消息提供了一些建议,但它们对我没有任何意义。我不知道如何“删除或重命名属性之一,或直接引用所需的类型”,并且在 web.config 中没有看到“添加 appSetting owin:AppStartup 和完全限定的启动”的位置web.config 中的类或配置方法名称。”

我找到了this,但不太确定如何实现它。我也确实在我的Startup.cs 中找到了[assembly: OwinStartupAttribute(typeof(Gators3.Startup))],但也不确定那里的正确做法。

【问题讨论】:

标签: asp.net asp.net-mvc


【解决方案1】:

问题是 Gators3.dll 和 MyFirstProject2.dll 在同一个文件夹中(我猜它是你服务器上的 bin 文件夹)并且都使用 Owin 中间件。如果您不需要 MyFirstProject2.dll,那么最简单的方法是删除该程序集。如果您需要它,但没有 Owin - 将以下行添加到 MyFirstProject2 项目中的 Web.config/app.config : <add key="owin:AutomaticAppStartup" value="False" />

如果您需要为两个项目使用 Owin,请为它们配置友好名称。

  • Gators3 项目:

将 Owin 启动属性更改为:

 attribute [assembly: OwinStartupAttribute("GatorsConfig", typeof(Gators3.Startup))]

并在 appSettings 部分的 Web.config 中添加以下行:

   <add key="owin:appStartup" value="GatorsConfig" /> 
  • MyFirstProject2 项目:

将 Owin 启动属性更改为某事 喜欢:

   attribute [assembly: OwinStartupAttribute("MyFirstProject2Config", typeof(MyFirstProject2.Startup))]

并在 appSettings 部分的 Web.config 中添加以下行:

   <add key="owin:appStartup" value="MyFirstProject2Config" />

【讨论】:

  • 最好的解释!
【解决方案2】:

我遇到了同样的问题:删除 bin 文件夹中的所有内容并单独重建解决方案对我有用。但它可以与重命名 startupclass 顶部的程序集属性相结合,给它一个 Firendly 名称,这将有助于区分两个启动文件。

[assembly: OwinStartup("MyFriendlyNameForProject1",typeof(MyProject.Startup))]

【讨论】:

  • 手动确保/bin 文件夹已清理(=删除所有文件),这是我的关键(谢谢)。重命名程序集,从 VS 中“清理”并重建是不够的,因为清理人员无法了解旧版 dll,因为它们仍然具有相同的旧名称
  • 手动确保 /bin 文件夹被清理是完全解决方案
【解决方案3】:

清除你的 bin 文件夹和 obj 文件夹。重新构建项目并运行 :)

【讨论】:

  • 仅清除 bin 文件夹并没有帮助,我还必须清除 obj 文件夹。谢谢
  • 为我工作。我认为这是“清洁解决方案”应该做的?
【解决方案4】:

从您的 bin 文件夹中删除任何显示“MyFirstProject2”的内容并重建解决方案,它会起作用。

【讨论】:

  • 这对我有用。不再需要额外的配置。我只是清理 bin 文件夹。然后重建,它就像魔术一样工作..
【解决方案5】:

此外,如果您将解决方案发布到 Azure:

1) 右键单击​​并选择发布。
2) 转到设置并展开“文件发布选项”
3) 选择“删除目标位置的其他文件”
4) 发布

从 obj 和 bin 文件夹中删除文件后,为我工作。

【讨论】:

  • 这可能是独立于发布目标(Azure、IIS、IISExpress 等)的解决方案。
  • @Michael Staples 为像你这样的人感谢上帝。拯救了我的一天。
【解决方案6】:

当您在另一个具有 owin 启动的项目中引用(错误地?)一个具有 owin 启动的项目时会发生这种情况。修复 - 删除引用、bin、obj 文件夹并重建。

【讨论】:

  • 非常感谢,这应该是公认的答案!
【解决方案7】:

我遇到了同样的问题,我在网络配置中添加了以下标签:

<appSettings>
    <add key="owin:AutomaticAppStartup" value="false" />
</appSettings>

【讨论】:

  • 这对我有用!我还删除了解决方案中所有项目的bin和obj文件夹之前,并用代码更新了包:“Update-Package Microsoft.AspNet.WebApi -reinstall”
  • 如果 false - public static void InitialiseThis(HttpApplication application) 被调用,当 true public static void Configuration( IAppBuilder app/*, IServiceCollection services*/)
【解决方案8】:

这就是我所做的:

  1. 由于我在一个解决方案中有 3 个项目,因此我必须打开每个项目的所有 bin 文件夹并删除其中的所有文件。

  2. 一个一个地构建每个项目。

  3. 构建整个解决方案。

问题由我解决。

【讨论】:

    【解决方案9】:

    删除“bin”文件夹中的所有文件并重建。

    【讨论】:

      【解决方案10】:

      删除文件Bin,一一构建每个项目。

      【讨论】:

      • 您能否提出更多答案以使其更有帮助?
      【解决方案11】:

      删除了 bin 文件夹中的所有内容,包括随后发布的 roslyn 文件夹,一切正常。

      【讨论】:

        【解决方案12】:

        删除临时文件中的旧构建数据,在以下路径中

        C:\Users\[user]\AppData\Local\Temp\Temporary ASP.NET Files\vs
        

        【讨论】:

          猜你喜欢
          • 2017-05-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-08
          • 1970-01-01
          • 2011-07-03
          • 1970-01-01
          相关资源
          最近更新 更多