C# 未找到包含OwinStartupAttribute错误的程序集

C# 未找到包含OwinStartupAttribute错误的程序集,c#,web-config,owin,.net-assembly,C#,Web Config,Owin,.net Assembly,这个错误 尝试加载应用程序时发生以下错误。 -未找到包含OwinStartupAttribute的程序集。 -找不到给定的类型或方法“false”。尝试指定程序集。 要禁用OWIN启动发现,请在web.config中添加值为“false”的appSetting OWIN:AutomaticAppStartup。 要指定OWIN启动程序集、类或方法,请在web.config中添加具有完全限定的启动类或配置方法名称的appSetting OWIN:AppStartup 出现在我的屏幕上有史以来最难看

这个错误

尝试加载应用程序时发生以下错误。 -未找到包含OwinStartupAttribute的程序集。 -找不到给定的类型或方法“false”。尝试指定程序集。 要禁用OWIN启动发现,请在web.config中添加值为“false”的appSetting OWIN:AutomaticAppStartup。 要指定OWIN启动程序集、类或方法,请在web.config中添加具有完全限定的启动类或配置方法名称的appSetting OWIN:AppStartup

出现在我的屏幕上有史以来最难看的错误页面

我试图按照页面上的说明在配置中插入owin:AutomaticAppStartup

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


这并没有解决问题。有什么建议吗?

标记下的
web.config
中添加此代码,如下图所示。你的错误就应该消失了

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


检查是否选择了正确的启动项目。我启动了一个web api项目。这就产生了这个错误。

我想在项目中去掉OWIN:

  • 从项目中删除OWIN引用和Nuget包
  • 清洁与重建项目
  • 运行应用程序
  • 然后我错了。 这些步骤不起作用,因为OWIN.dll仍在bin/目录中

    修复:

  • 手动删除bin/目录
  • 重建项目

  • 在中提到的类中可能没有配置方法

    <appSettings>
    <add key="owin:AppStartup" value="WebApplication1.App_Start.Startup"/>
    
    
    

    我缺少以下属性:

    [assembly: OwinStartupAttribute(typeof(projectname.Startup))]
    
    它指定启动类。更多详情:

    对于那些希望owin启动的人,

    这就是我的Startup.cs文件的样子:

    using Microsoft.Owin;
    using Owin;
    
    [assembly: OwinStartupAttribute(typeof(ProjectNameSpace.Startup))]
    
    namespace ProjectNameSpace
    {
        public partial class Startup
        {
            public void Configuration(IAppBuilder app)
            {
                ConfigureAuth(app);
            }
        }
    }
    

    我得到这个错误是因为代码中有额外的空白

    而不是


    我删除了分支中所有不工作的DLL,然后将分支中所有工作的DDL复制到不工作的分支。这就解决了问题。

    只需更换

            using (WebApp.Start(url))
    

    使用(WebApp.Start(url))
    

    解决了我的问题。名为Startup的类已实现。如上所述,@robthedev

    检查您是否在项目中创建了启动类。这是一个例子:

    using Microsoft.Owin;
    using Owin;
    
    [assembly: OwinStartupAttribute(typeof({project_name}.Startup))]
    
    namespace AuctionPortal
    {
        public partial class Startup
        {
            public void Configuration(IAppBuilder app)
            {
                ConfigureAuth(app);
            }
        }
    }
    

    只需将此代码粘贴到Web.config中,而不是Web.config中有两个webconfig,因此请确保它将被粘贴到Web.config中。在Web.config中添加以下键将删除此代码

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

    如果您想使用信号器 您必须在项目中添加startup.cs

    在项目中单击鼠标右键,然后添加新项目,然后在启动类中选择

    然后在配置方法中添加下面的代码

    app.MapSignalR();
    

    我希望这篇文章对你有用

    我知道这篇文章很旧,但万一有人发现同样的错误,请尝试添加

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

    如果之后出现下一个错误:

    HTTP错误401.0-未经授权的错误消息

    在标签后添加下一个代码
    可以在开头

    
    

    就我而言:


    使用下一个代码将类Startup.cs添加到项目根目录:

    using Microsoft.Owin;
    using Owin;
    
    [assembly: OwinStartupAttribute(typeof(ProjectName.Startup))]
    namespace ProjectName
    {
        public partial class Startup
        {
            public void Configuration(IAppBuilder app)
            {
                ConfigureAuth(app);
            }
        }
    }
    

    如果部署到Azure,您将收到此错误。只需删除站点上的所有文件(备份任何web.config、appsettings.json或您不想丢失的文件),然后重新部署。网站上有一些不应该存在的剩余dll文件,这使Azure门户认为需要使用OWIN。

    将以下代码添加到web.config文件中,然后运行项目

        <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
        </dependentAssembly>
        <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
        </dependentAssembly>
        <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
        </dependentAssembly>
        <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35"/>
        <bindingRedirect oldVersion="1.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
        </dependentAssembly>
        </runtime>
    

    我的案例需要owin启动类。
    添加新项>OWIN Startup Class>Name Startup.cs

    我在Visual Studio 2019 V 16.10.2中发现了一个错误,当您的项目名称中有一个空格时,会引发此错误。要解决此问题,必须在web.config->appSettings部分显式设置启动类路径:

    <add key="owin:AppStartup" value="ABC_DEF.Startup"/>
    
    
    
    而不是
    ,这就成功了。也谢谢你提供的资源。我的感谢@KeyurPATEL。我想你错过了startup.cs fileKurkula是绝对正确的。安装ASP.net身份验证系统并不是为了在启动时将其丢弃。您完全缺少项目根目录下的startup.cs文件。将此代码放入文件。-------------使用Microsoft.Owin;使用Owin;[assembly:OwinStartupAttribute(typeof(YOURPROJECT.Startup))]命名空间YOURPROJECT{public partial class Startup{public void Configuration(IAppBuilder app){ConfigureAuth(app);}}}lol-删除bin和obj文件夹始终是解决奇怪的依赖性错误的方法。我以前下载并尝试过SignalR nuget,而SignalR nuget又添加了owin nuget。软件包已被删除,但我还必须删除bin文件夹才能使其正常工作。在安装Signal并中止奋进后,我来到这里。谢谢,简单又快速。为Meowin工作卸载包也会有帮助,或者从引用中删除所有带有owin的DLL也会有帮助这就是解决方案,或者至少这个解决方案解决了我的问题。请将答案标记为解决方案。这一个应该在顶部…谢谢,这起作用了,但是有人能告诉我,通过将这个设置值设为false,我失去了什么吗?这对我起作用了,我意识到这发生在项目名称中有一个点时。因此,如果名称空间类似于“namespace ProjectNameSpace.ApiRest”,那么定义一个类似于示例中的程序集可以解决问题。F
    
    <add key="owin:AppStartup" value="ABC_DEF.Startup"/>