OWIN Startup Class Missing
我得到这个错误,因为我的项目找不到
尝试加载应用程序时出现以下错误。
0创建一个名为startup的类,这将帮助您..
1 2 3 4 5 6 7 | public class Startup { public void Configuration(IAppBuilder app) { app.MapSignalR(); } } |
在我们的项目中,我们不需要OWIN功能,所以我们从最初的ASP.NET MVC模板项目中删除了所有的OWIN引用。删除owin启动类后出现问题。
问题是我的bin文件夹中有多余的owin dll。当我删除它们时,问题就解决了。您应该通过删除bin文件夹来删除它们。清除解决方案不会删除这些DLL。
不知何故,当owin dll在bin文件夹中时,IIS仍会执行它们。
在Visual Studio 2013 RC2上,有一个用于此的模板。只需将其添加到app_start文件夹。
模板生成这样的类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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下添加以下行:
2在web.config中应该是这样的:
1 | </appSettings> |
找一找
按照您的错误指定,您可以通过执行以下操作在web.config中禁用此功能…
0首先,必须创建启动文件,然后必须在web.config中指定此文件的区域设置,并在appsettings标记内使用此行:
它解决了我的问题。
我有这个问题,明白这不是OP的问题所在,但在我的例子中,我确实有一个启动类,它在默认情况下并没有找到它。
我的问题是我的程序集名称中有空格,因此默认命名空间与程序集名称不同,因此启动类的命名空间与程序集名称不同。
如错误所示,按照惯例,它查找[程序集名称]。类的启动…因此,请确保启动类的命名空间与程序集名称相同。帮我解决了这个问题。
我在这里尝试了大多数推荐的修复方法,但仍然无法避免错误消息。最后,我结合了一些推荐的解决方案:
将此条目添加到my web.config的
扩展了我的项目的引用节点,删除了包含字符串
然后我点击
我的案子?我有启动文件,但它被排除在项目中。我刚刚把它包括在内,还有错误。
在我的例子中,我重命名了项目并更改了它的文件夹结构。我发现更新抛出错误的.csproj文件中的rootnamespace和assemblyname解决了该错误。如果您修改了项目的路径,我建议您也检查一下。
1 2 | <RootNamespace>Company.Product.WebAPI</RootNamespace> <AssemblyName>Company.Product.WebAPI</AssemblyName> |
在Visual Studio 2015中,当您将Azure广告与MVC项目一起使用时,也可能会遇到这种情况。在这里,它将启动文件创建为app_start文件夹中的startup.auth.cs,但它将丢失
1 |
所以,加上它,你就可以走了。这将在命名空间启动之前进行。
如果通过IIS Express运行并且您的虚拟目录配置不正确,也可以获取此异常(即使您有一个正确配置的启动类)。
当我遇到这个问题时,解决方法就是简单地按项目属性的"Web"选项卡中的"创建虚拟目录"按钮(使用Visual Studio 2013)
我在试用了信号器,然后将其从项目中移除后,遇到了这个问题。为了解决这个问题,我必须删除远程服务器上站点的bin文件夹的内容,然后重新发布。
您是真的要将owin添加到您的项目中,还是这是意外的?
如果您想添加owin,那么添加一个startup类就可以了。
如果您不需要任何对OWIN的引用:
从/bin文件夹中删除owin.dll。
owin.dll是试图标识启动类的。
只需检查您的
虽然我不能完全解释为什么这解决了我的问题,但在我把API项目改成单独的
elease
我在这里总结了我的经验:重命名ASP.NET项目文件后,无法在IIS Express中运行owin启动类
当我在VS2013中使用浏览器链接仪表板开始我的项目时,我一直遇到同样的错误。但是,当我以调试模式运行我的项目时,它会工作。我不知道为什么以及如何让浏览器链接仪表板工作。我检查了启动文件,它很好,添加了一些答案中描述的应用程序设置行",但没有任何效果。
显然,我做错的是在浏览器仪表板中单击了错误的链接。所有解决方案项目链接都显示在浏览器仪表板中,但只有"启动项目"链接起作用。您需要单击启动项目的链接。
示例:我有两个项目,都显示在浏览器仪表板中,但只有一个标记为启动项目的项目可以工作(在解决方案资源管理器中显示为粗体)。我认为这可能有助于完成显而易见的任务,我花了2天时间偶然发现了显而易见的任务。
当我得到关于tfs的最新消息,而其他项目在vs的多个实例中打开时,我遇到了这个问题。我已经得到了上面所有的修复。重新打开vs修复了问题。
在我的例子中,我登录了ftp服务器。在ftp服务器上备份当前文件。从ftp服务器手动删除所有文件。清除解决方案,重新部署代码。它奏效了。