OWIN启动类缺失
我得到这个错误,因为我的项目无法findOWIN
启动类的参考。 我甚至通过Nuget安装了所有的OWIN参考包,但仍然遇到同样的问题。 我正在使用Visual Studio 2012
和MVC4
。
尝试加载应用程序时发生以下错误。
- 没有发现包含OwinStartupAttribute的程序集。
- 找不到包含启动或[AssemblyName] .Startup类的程序集。 要禁用OWIN启动发现,请在web.config中添加值为“false”的appSetting owin:AutomaticAppStartup。 要指定OWIN启动程序集,类或方法,请在web.config中将appSetting owin:AppStartup与完全限定的启动类或configuration方法名称相加。
用名称创build一个类启动这将帮助你..
public class Startup { public void Configuration(IAppBuilder app) { app.MapSignalR(); } }
在我们的项目中,我们不需要OWINfunction,所以我们从最初的ASP.NET MVC模板项目中删除了所有的owin引用。 删除OWIN启动类后出现问题。
问题是额外的owin dll在我的bin文件夹中。 当我删除它们时,问题就解决了。 您应该通过删除bin文件夹来删除它们。 Clean Solution不会删除这些dll。
不知怎么的,当他们在bin文件夹中时,IIS仍然执行OWIN dll。
在Visual Studio 2013 RC2上,有一个这样的模板。 只需将其添加到App_Start文件夹。
模板产生这样一个类:
using System; using System.Threading.Tasks; using Microsoft.Owin; using Owin; [assembly: OwinStartup(typeof(WebApiOsp.App_Start.Startup))] namespace WebApiOsp.App_Start { public class Startup { public void Configuration(IAppBuilder app) { // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888 } } }
如果你不想使用OWIN启动,这是你应该添加到你的web.config文件:
在AppSettings下添加以下行:
<add key="owin:AutomaticAppStartup" value="false" />
这是它应该如何在你的web.config中看起来像:
<appSettings> <add key="owin:AutomaticAppStartup" value="false" /> </appSettings>
看看Startup.cs
文件,你可能会错过其中的一个。 这个文件是OWIN的入口点,所以这听起来像是缺less的。 看看OWIN Startup class
,了解发生了什么事情。
如您的错误指定,您可以通过执行以下操作在web.config中禁用此项…
要禁用OWIN启动发现,请在您的web.config中添加值为“false”的appSetting owin:AutomaticAppStartup
首先,您必须创build启动文件,并且在必须在web.config中指定此文件的语言环境后,在appSettings标记中使用以下代码行:
<add key="owin:AppStartup" value="[NameSpace].Startup"/>
它解决了我的问题。
我有这个问题,明白这不是什么错在OP的情况下,但在我的情况下,我有一个启动类,它只是没有find它默认情况下。
我的问题是我的程序集名称中有空格,因此默认名称空间与程序集名称不同,因此启动类的名称空间与程序集名称不同。
正如错误所示,按照惯例,它会查找[Assembly Name] .Startup for the class …因此请确保Startup类的名称空间与Assembly名称相同。 解决了我的问题。
我在这里尝试了大部分的build议修复,仍然无法避免错误信息。 我终于完成了几个推荐的解决scheme的组合:
-
将此条目添加到我的web.config的
AppSettings
部分的顶部:<add key="owin:AutomaticAppStartup" value="false"/>
-
展开我的项目的引用节点,并删除包含string
OWIN
。 (我觉得这样做是安全的,因为我的组织今后不会(也不会)成为一个活跃的OWIN提供者)
然后我点击Run
,我的网页加载了。
我的情况? 我有启动文件,但它被排除在项目中。 我只是把它包括在内,并留下了错误。
如果通过IIS Express运行并且虚拟目录configuration不正确,也可以获得此exception(即使具有正确configuration的启动类)。
当我遇到这个问题时,解决方法只是按项目属性的“Web”选项卡中的“创build虚拟目录”button(使用Visual Studio 2013)
在我的情况下,我已经重命名了项目,并改变了它的文件夹结构。 我发现更新错误被引发的.csproj文件中的RootNameSpace和AssemblyName解决了错误。 如果你修改了项目的path,我build议你检查一下。
<RootNamespace>Company.Product.WebAPI</RootNamespace> <AssemblyName>Company.Product.WebAPI</AssemblyName>
虽然我不能完全解释为什么这解决了我的问题,我遇到了这样的问题之后,我改变了我的API项目build立分离\debug
和\release
文件夹。 一旦我恢复了这个变化回到build立一个\bin
文件夹的东西开始工作。
我在这里写下了我的经验: 重命名ASP.NET项目文件后,无法使OWIN启动类在IIS Express中运行
在对SignalR进行实验之后,我遇到了这个问题,然后从项目中删除了它。 要解决我必须删除远程服务器上的站点的bin文件夹的内容,然后再次发布。
你真的想把OWIN添加到你的项目中吗?
-
如果你想添加OWIN,添加一个启动类是要走的路。
-
如果你不需要参考Owin :
从你的/ bin文件夹中删除Owin.dll 。
Owin.dll是试图识别启动类的人。
只要检查你的packages.config
文件是否被检入(当被排除时,在浏览器中会显示一个红色的不允许的符号)。 由于一些奇怪的原因,我被排除在外,造成了这个问题。
当我在VS2013中使用Browser Link仪表板开始我的项目时,我一直得到相同的错误。 但是,当我在debugging模式下运行我的项目,它会工作。 我无法弄清楚为什么以及如何让浏览器链接仪表板工作。 我检查了启动文件,没有问题,添加了一些答案中描述的appSetting行“”,但没有任何工作。
显然,我做错了什么是单击浏览器仪表板中的错误链接。 所有解决scheme项目链接显示在浏览器仪表板中,但只有启动项目链接工作。 你需要点击启动项目的链接。
示例:我有两个项目,都显示在浏览器仪表板中,但只有标记为启动项目的项目才能正常工作(在解决scheme资源pipe理器中显示为粗体)。我认为这可能有助于某人做显而易见的事情,这会花费我2天绊倒在显而易见的地步。
当您在Azure AD中使用MVC项目时,也可能会在Visual Studio 2015中遇到这种情况。 在这里它创build启动文件作为App_Start文件夹中的Startup.Auth.cs,但它将会丢失
[assembly: OwinStartup(typeof(D_ToolsWebApp.Startup))]
所以添加它,你应该很好去。 这在命名空间开始之前。
当我得到最新的TFS,而其他项目在VS的多个实例中打开时,我有这个问题。 我已经有了上面的所有修复。 重新打开VS解决了这个问题。
在我的情况下,我login到FTP服务器。 在FTP服务器上备份当前文件。 从ftp服务器手动删除所有文件。 干净的解决scheme,重新部署的代码。 有效。