找不到包含OwinStartupAttribute错误的程序集

时间:2016-08-29 02:50:53

标签: c# web-config owin .net-assembly

此错误

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

在我的屏幕上出现在历史上曾创建的最令人难以置信的丑陋错误页面上。

enter image description here

我试图通过在配置中插入owin:AutomaticAppStartup来遵循页面上的说明。

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

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

19 个答案:

答案 0 :(得分:127)

Add this code in web.config under the tag as shown in image below. Your error should then be gone.

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

Check Image Below

答案 1 :(得分:71)

我想在项目中摆脱OWIN:

  1. 从项目中删除OWIN引用和Nuget包
  2. 清洁&amp;重建项目
  3. 运行应用
  4. 然后我收到了OWIN错误。 这些步骤不起作用,因为OWIN.dll仍在bin /目录中

    <强> FIX:

    1. 手动删除bin /目录
    2. 重建项目

答案 2 :(得分:16)

对于那些希望owin开始的人来说,<add key="owin:AutomaticAppStartup" value="false" />将不起作用,但以下内容对我有效。

  1. 如果您的Startup.Auth文件中有部分类“Startup”,请在项目的根目录中创建另一个部分Startup类。

  2. 定义指向该类的程序集owinstartup属性

  3. 创建“配置”方法

  4. 重建您的应用

  5. 您还可以创建“Configuration”方法,并将assembly属性添加到Startup.Auth,但这样做可以让您通过利用C#类定义拆分来分隔Startup类。在此处阅读更多内容:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/partial-classes-and-methods

    这是我的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);
            }
        }
    }
    

答案 3 :(得分:8)

我错过了属性:

[assembly: OwinStartupAttribute(typeof(projectname.Startup))]

其中指定了启动类。更多细节: https://docs.microsoft.com/en-us/aspnet/aspnet/overview/owin-and-katana/owin-startup-class-detection

答案 4 :(得分:5)

您在

中提到的课程中可能没有配置方法
<appSettings>
<add key="owin:AppStartup" value="WebApplication1.App_Start.Startup"/>

答案 5 :(得分:2)

我收到此错误,因为代码中有一个额外的空格

而不是

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

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

答案 6 :(得分:2)

在Web.config中添加以下键将删除代码

<appSettings>

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

答案 7 :(得分:1)

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

答案 8 :(得分:1)

只需更换

        using (WebApp.Start(url))

        using (WebApp.Start<Startup>(url))

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

答案 9 :(得分:1)

我知道这篇文章很旧,但是以防万一有人在寻找相同的错误,请尝试添加

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

标记<appSettings>

之后

,然后显示下一个错误:

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

在标签<system.web>之后添加下一个代码,该代码可以位于开头

<authentication mode="Forms"> <forms loginUrl="~/YourFolderName/yourFileName" timeout="1" /> </authentication>

我的情况是:

<authentication mode="Forms"> <forms loginUrl="~/Login/Index" timeout="1" /> </authentication>

答案 10 :(得分:0)

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

<add key="owin:AppStartup" value="ABC_DEF.Startup"/>

答案 11 :(得分:0)

我的情况需要 owin 启动类。 添加新项目 > OWIN 启动类 > 命名 Startup.cs

答案 12 :(得分:0)

将以下代码添加到您的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>

答案 13 :(得分:0)

如果部署到Azure,则出现此错误。只需删除站点上的所有文件(备份任何web.config,appsettings.json或您不希望丢失的文件),然后再次进行部署。站点上还有一些不应该存在的dll文件,这使Azure门户认为它需要使用OWIN。

答案 14 :(得分: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);
        }
    }
}

答案 15 :(得分:0)

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

右键单击您的项目,然后添加新项,然后选择 OWIN启动类

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

app.MapSignalR();

我希望它将对您有用

答案 16 :(得分:0)

只需将此代码<add key="owin:AutomaticAppStartup" value="false" />粘贴到Web.config中即可。不在web.config中有两个webconfig,因此请确保将其粘贴到Web.Config中

答案 17 :(得分:0)

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

using Microsoft.Owin;
using Owin;

[assembly: OwinStartupAttribute(typeof({project_name}.Startup))]

namespace AuctionPortal
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }
    }
}

答案 18 :(得分:0)

我从分支机构中删除了所有不能正常工作的DLL,然后我从我的分支机构复制了所有DDl,这些分支机构正在向我的分支机构复制,但是没有。这解决了这个问题。