首页 文章

OWIN启动类丢失

提问于
浏览
213

我收到此错误,因为我的项目无法找到 OWIN 启动类的引用 . 我've even installed all the OWIN reference packages through Nuget still getting the same issue. I' m使用 Visual Studio 2012MVC4 .

尝试加载应用程序时发生以下错误 .

找不到包含OwinStartupAttribute的程序集 . 找不到包含Startup或[AssemblyName] .Startup类的程序集 . 要禁用OWIN启动发现,请在web.config中添加值为“false”的appSetting owin:AutomaticAppStartup . 要指定OWIN启动程序集,类或方法,请在web.config中使用完全限定的启动类或配置方法名称添加appSetting owin:AppStartup .

19 回答

  • 1

    使用名称启动创建一个类这将帮助您..

    public class Startup
    {
       public void Configuration(IAppBuilder app)
       {
          app.MapSignalR();
       }
    }
    
  • 0

    在我们的项目中,我们不需要OWIN功能,因此我们从初始的ASP.NET MVC模板项目中删除了所有owin引用 . 删除OWIN启动类后出现问题 .

    问题是我的bin文件夹中的额外owin dll . 当我删除它们时,问题得到了解决 . 您应该删除bin文件夹来删除它们 . Clean Solution 不会删除这些dll .

    不知何故,当IIS位于bin文件夹中时,IIS仍会执行OWIN dll .

  • 10

    在Visual Studio 2013 RC2上,有一个模板 . 只需将其添加到App_Start文件夹即可 .

    enter image description here

    模板生成这样一个类:

    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
            }
        }
    }
    
  • 25

    如果您不想使用OWIN启动,那么您应该添加到 web.config 文件中:

    AppSettings 下添加以下行:

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

    这是它在web.config中的样子:

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

    查看 Startup.cs 文件,您可能会遗漏其中一个 . 这个文件是OWIN的入口点,所以听起来好像缺少了 . 看看OWIN Startup class在这里了解最新情况 .

    如您的错误指定,您可以通过执行以下操作在web.config中禁用此功能...

    要禁用OWIN启动发现,请在web.config中添加值为“false”的appSetting owin:AutomaticAppStartup

  • 1

    首先,您必须创建启动文件,并且必须在web.config中指定此文件的区域设置后,在此appSettings标记内使用以下行:

    <add key="owin:AppStartup" value="[NameSpace].Startup"/>

    它解决了我的问题 .

  • 15

    我有这个问题,明白这不是OP的情况下的错误,但在我的情况下,我确实有一个Startup类,它只是默认没有找到它 .

    我的问题是我的程序集名称中有空格,因此默认名称空间与程序集名称不同,因此启动类的名称空间与程序集名称不同 .

    正如错误所示,按照惯例,它会查找[程序集名称] . 类的启动...所以请确保您的Startup类的名称空间与程序集名称相同 . 解决了我的问题 .

  • 3

    我在这里尝试了大多数推荐的修复程序,仍然无法避免错误消息 . 我终于完成了几个推荐的解决方案的组合:

    • 将此条目添加到 web.configAppSettings 部分的顶部:

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

    • 扩展了我的项目的References节点并删除了包含字符串 OWIN 的所有内容 . (我觉得这样做很安全,因为我的组织未来(也不会)是未来的活跃OWIN提供商)

    然后我点击了 Run 并且我的主页已经加载了 .

  • 1

    我的情况?我有启动文件,但它被排除在项目中 . 我只是把它包括在内并且错误就剩下了 .

  • 3

    在我的情况下,我重命名了项目并更改了它的文件夹结构 . 我发现更新抛出错误的.csproj文件中的RootNameSpace和AssemblyName解决了错误 . 如果您修改了项目的路径,我建议您也检查一下 .

    <RootNamespace>Company.Product.WebAPI</RootNamespace>
    <AssemblyName>Company.Product.WebAPI</AssemblyName>
    
  • 42

    如果通过IIS Express运行并且未正确配置虚拟目录,也可能会出现此异常(即使您具有正确配置的启动类) .

    当我遇到此问题时,解决方案只是按下项目属性的“Web”选项卡中的“创建虚拟目录”按钮(使用Visual Studio 2013)

  • 195

    当您将Azure AD与MVC项目一起使用时,Visual Studio 2015中也可能会出现这种情况 . 在这里它创建启动文件作为App_Start文件夹中的Startup.Auth.cs但它将缺少

    [assembly: OwinStartup(typeof(D_ToolsWebApp.Startup))]
    

    所以添加它,你应该很高兴去 . 这在命名空间开始之前 .

  • 0

    虽然我无法完全解释为什么这为我解决了这个问题,但在我将API项目更改为单独的 \debug\release 文件夹之后,我遇到了类似这样的问题 . 一旦我将该更改恢复为构建到单个 \bin 文件夹,事情就开始起作用了 .

    我在这里写下了我的经历:Can't get the OWIN Startup class to run in IIS Express after renaming ASP.NET project file

  • 1

    我在尝试使用SignalR然后将其从项目中删除后遇到了这个问题 . 要解决我必须删除远程服务器上的站点的bin文件夹的内容,然后发布再次 .

  • 2

    您是否真的尝试将OWIN添加到您的项目中,或者这是意料之中的事情?

    • 如果您想添加OWIN,可以添加一个Startup类 .

    • 如果 you don't 需要对 Owin 的任何引用:

    delete Owin.dll from your /bin folder .

    Owin.dll是试图识别Startup类的人 .

  • 0

    只需检查您的 packages.config 文件是否已签入(排除时,资源管理器中将显示红色的禁止输入符号) . 由于某些奇怪的原因,我被排除在外并造成了这个问题 .

  • 2

    当我使用VS2013中的浏览器链接仪表板启动项目时,我一直收到同样的错误 . 但是,当我在调试模式下运行我的项目时,它会工作 . 我无法弄清楚为什么以及如何让Browser Link Dashboard工作 . 我检查了启动文件,没关系,按照一些答案中的描述添加了appSetting行,但没有任何效果 .

    显然,我错误的是单击浏览器仪表板中的错误链接 . 所有解决方案项目链接都显示在浏览器仪表板中,但只有启动项目链接有效 . 您需要单击启动项目的链接 .

    示例:我有两个项目,都显示在浏览器仪表板中,但只有标记为启动项目的项目才有效(在解决方案资源管理器中显示为粗体 . )我认为这可能有助于某人做明显的事情,它花了我2几天可以偶然发现 .

  • 101

    当我获得最新的TFS而其他项目在VS的多个实例中打开时,我遇到了这个问题 . 我已经有了上面的所有修复 . 重新打开VS修复了问题 .

  • 191

    在我的情况下,我登录到ftp服务器 . 在ftp服务器上备份当前文件 . 从ftp服务器手动删除所有文件 . 清洁解决方案,重新部署代码 . 有效 .

相关问题