我得到这个错误,因为我的项目无法找到OWIN启动类的参考。我甚至通过Nuget安装了所有的OWIN参考包,仍然得到相同的问题。我使用的是Visual Studio 2012和MVC4。

在尝试加载应用程序时发生了以下错误。

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


当前回答

在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
        }
    }
}

其他回答

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

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

创建一个类与名称启动这将帮助你..

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

当我得到TFS的最新版本时,其他项目在vs的多个实例中都是打开的,我就遇到了这个问题。重新打开VS修复了问题。

在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
        }
    }
}

我有这个问题,理解这不是什么错在OP的情况下,但在我的情况下,我确实有一个启动类,它只是没有找到它默认。

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

正如错误提示的那样,按照约定,它将查找[程序集名称]。开始上课…因此,请确保启动类的命名空间与程序集名称相同。帮我解决了这个问题。