No assembly found containing an OwinStartupAttribute Error
这个错误
尝试加载应用程序时出现以下错误。-找不到包含owInstartuattribute的程序集。-找不到给定的类型或方法"false"。尝试指定程序集。若要禁用owin启动发现,请在web.config中添加值为"false"的appsetting owin:automaticappstartup。要指定owin启动程序集、类或方法,请使用web.config中完全限定的启动类或配置方法名称添加appsetting owin:appstartup。
在我的屏幕上出现在历史上最难看的错误页面上。
我试图按照页面上的说明在配置中插入owin:automaticalpstartup。
1 2 | </add> </appSettings> |
这并没有解决问题。有什么建议吗?
在web.config中的标记下添加此代码,如下图所示。你的错误就应该消失了。
1 2 3 4 5 6 | <configuration> </appSettings> ... </configuration> |
我想在这个项目中摆脱奥文:
然后我出错了。这些步骤不起作用,因为owin.dll仍在bin/目录中。
修复:
对于那些想让奥文开始的人来说,
如果在startup.auth文件中有部分类"startup",请在项目的根目录中创建另一个部分启动类。
定义指向该类的程序集owInstartup属性
创建"配置"方法
重新生成应用程序
您还可以创建"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文件的外观:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | using Microsoft.Owin; using Owin; [assembly: OwinStartupAttribute(typeof(ProjectNameSpace.Startup))] namespace ProjectNameSpace { public partial class Startup { public void Configuration(IAppBuilder app) { ConfigureAuth(app); } } } |
我缺少属性:
2它指定了启动类。更多细节:https://docs.microsoft.com/en-us/aspnet/aspnet/overview/owin-and-katana/owin-startup-class-detection
在中提到的类中,您可能没有配置方法。
1 |
在web.config中添加以下键将删除代码
1 | </appSettings> |
我收到这个错误是因为代码中有多余的空白
而不是
它是
只是替换
1 | using (WebApp.Start(url)) |
具有
1 | using (WebApp.Start<Startup>(url)) |
解决了我的问题。名为Startup的类已实现。如上文所述,@robthedev
检查是否选择了正确的启动项目。我启动了一个Web API项目。产生了这个错误。
只需在web.config中粘贴此代码
检查是否在项目中创建了Startup类。这是一个例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | using Microsoft.Owin; using Owin; [assembly: OwinStartupAttribute(typeof({project_name}.Startup))] namespace AuctionPortal { public partial class Startup { public void Configuration(IAppBuilder app) { ConfigureAuth(app); } } } |
我从不工作的分支中删除了所有的DLL,然后从工作的分支复制了所有的DDL到不工作的分支。这解决了问题。