[c#] OWIN启动类缺失


Answers

在我们的项目中,我们不需要OWIN功能,所以我们从最初的ASP.NET MVC模板项目中删除了所有的owin引用。 删除OWIN启动类后出现问题。

问题是额外的owin dll在我的bin文件夹中。 当我删除它们时,问题就解决了。 您应该通过删除bin文件夹来删除它们。 Clean Solution不会删除这些dll。

不知怎么的,当他们在bin文件夹中时,IIS仍然执行OWIN DLL。

Question

我得到这个错误,因为我的项目无法找到OWIN启动类的参考。 我甚至通过Nuget安装了所有的OWIN参考包,但仍然遇到同样的问题。 我使用的是Visual Studio 2012MVC4

尝试加载应用程序时发生以下错误。

  • 找不到包含OwinStartupAttribute的程序集。
  • 找不到包含启动或[AssemblyName] .Startup类的程序集。 要禁用OWIN启动发现,请在web.config中添加值为“false”的appSetting owin:AutomaticAppStartup。 要指定OWIN启动程序集,类或方法,请在web.config中将appSetting owin:AppStartup与完全限定的启动类或配置方法名称相加。



在我的情况下,我重命名了项目并更改了它的文件夹结构。 我发现在抛出错误的.c​​sproj文件中更新RootNameSpace和AssemblyName可以解决错误。 如果你修改了项目的路径,我建议你检查一下。

<RootNamespace>Company.Product.WebAPI</RootNamespace>
<AssemblyName>Company.Product.WebAPI</AssemblyName>



我在这里尝试了大多数推荐的修补程序,但仍无法避免出现错误消息。 我终于完成了一些推荐解决方案的组合:

  1. 将此条目添加到我的web.configAppSettings部分的顶部:

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

  2. 展开我的项目的References节点并删除包含字符串OWIN 。 (我觉得这样做很安全,因为我的组织将来不会(也不会)成为活跃的OWIN提供者)

然后,我点击Run ,我的主页加载了。




当您在Azure AD中使用MVC项目时,也可能会在Visual Studio 2015中遇到这种情况。 在这里它创建启动文件作为App_Start文件夹中的Startup.Auth.cs,但它将会丢失

[assembly: OwinStartup(typeof(D_ToolsWebApp.Startup))]

所以添加它,你应该很好去。 这在名称空间开始之前进行。




当我得到最新的TFS时,我遇到了这个问题,而其他项目在VS的多个实例中打开。 我已经有了上面的所有修复。 重开VS解决了这个问题。




如果你不想使用OWIN启动,这是你应该添加到你的web.config文件中:

AppSettings下添加以下行:

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

这是它应该如何在你的web.config中看起来像:

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



首先,您必须创建启动文件,并且在必须在web.config中指定此文件的语言环境后,在appSettings标记内使用以下行:

<add key="owin:AppStartup" value="[NameSpace].Startup"/>

它解决了我的问题。




在对SignalR进行实验之后,我遇到了这个问题,然后将它从项目中删除。 要解决,我必须删除远程服务器上站点的bin文件夹的内容,然后重新发布。




只要检查你的packages.config文件是否被签入(当被排除时,在浏览器中将会出现一个红色的不进入符号)。 由于一些奇怪的原因,我被排除在外并引发了这个问题。




Related