找不到OWIN HttpListener

Gil*_*lla 69 c# exception .net-4.5 owin asp.net-web-api2

当我尝试开始时:

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

我得到以下异常.可能是根本原因?

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)
Run Code Online (Sandbox Code Playgroud)

Pie*_*aud 121

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

您可以通过NuGet添加它.

但是,如果代码执行:

WebApp.Start<SrvcHst> (...);
Run Code Online (Sandbox Code Playgroud)

包含在类库中,确保使用该库的可执行文件还包含对该程序的引用Microsoft.Owin.Host.HttpListener.dll,否则它将不会与您的程序一起部署,因为类库中没有对它的显式引用.

看看你的bin/Debug文件夹,确保DLL在那里.

  • 为什么这不是Microsoft.Owin.Hosting的依赖? (5认同)
  • 谢谢皮埃尔.建议您改进答案:我不想手动将该引用添加到将使用我的库的所有应用程序.相反,我只是从我自己的程序集中引用HttpListener程序集中的某些东西(任何东西),这样构建就被强制将该DLL带到应用程序的输出文件夹中. (3认同)

Dam*_*nka 45

确保你有安装包 Microsoft.Owin.Host.HttpListener

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

Install-Package Microsoft.Owin.Host.HttpListener
Run Code Online (Sandbox Code Playgroud)


Dan*_*ark 7

有时NuGet引用是以不完整的状态添加的.如果您安装了软件包,但不包括引用,请尝试通过以下方式重新安装它们;

Update-Package -reinstall
Run Code Online (Sandbox Code Playgroud)

在包管理器控制台中.