当我尝试开始时:
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)
答案 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