找不到OWIN HttpListener

时间:2014-08-01 23:42:38

标签: c# exception .net-4.5 owin asp.net-web-api2

当我尝试开始时:

WebApp.Start<SrvcHst>(new StartOptions { Port = 9956, 
     ServerFactory = "Microsoft.Owin.Host.HttpListener" });

我收到以下异常。可能是根本原因?

System.MissingMemberException was caught
  HResult=-2146233070
  Message=The server factory could not be located for the given input: Microsoft.Owin.Host.HttpListener
  Source=Microsoft.Owin.Hosting
  StackTrace:
       at Microsoft.Owin.Hosting.Engine.HostingEngine.ResolveServerFactory(StartContext context)
       at Microsoft.Owin.Hosting.Engine.HostingEngine.Start(StartContext context)
       at Microsoft.Owin.Hosting.Starter.DirectHostingStarter.Start(StartOptions options)
       at Microsoft.Owin.Hosting.Starter.HostingStarter.Start(StartOptions options)
       at Microsoft.Owin.Hosting.WebApp.StartImplementation(IServiceProvider services, StartOptions options)
       at Microsoft.Owin.Hosting.WebApp.Start(StartOptions options)
       at Microsoft.Owin.Hosting.WebApp.Start[TStartup](StartOptions options)

4 个答案:

答案 0 :(得分:118)

您必须在项目参考中包含Microsoft.Owin.Host.HttpListener.dll

您可以通过NuGet添加它。

但是,如果代码正在执行:

WebApp.Start<SrvcHst> (...);

包含在类库中,请确保使用该库的可执行文件还包含对Microsoft.Owin.Host.HttpListener.dll的引用,否则它将无法部署使用您的程序,因为类库中没有明确的引用。

查看您的bin/Debug文件夹并确保DLL在那里。

答案 1 :(得分:43)

确保您已安装包Microsoft.Owin.Host.HttpListener

要安装软件包,请使用以下命令行:

Install-Package Microsoft.Owin.Host.HttpListener

答案 2 :(得分:7)

有时NuGet引用会以不完整的状态添加。如果您安装了软件包,但不包括引用,请尝试通过;

重新安装它们
Update-Package -reinstall

在包管理器控制台中。

答案 3 :(得分:0)

对Pierre和Damith的回答很少。如果您使用的是 Mac OS ,请运行以下命令安装 HttpListener

dnu install Microsoft.Owin.Host.HttpListener