找不到给定输入的服务器工厂:Microsoft.Owin.Host.HttpListener
Posted
技术标签:
【中文标题】找不到给定输入的服务器工厂:Microsoft.Owin.Host.HttpListener【英文标题】:The server factory could not be located for the given input: Microsoft.Owin.Host.HttpListener 【发布时间】:2015-01-25 22:03:31 【问题描述】:我在窗口服务中实现了 signalR。
private IDisposable SignalR get; set;
public void Configuration(IAppBuilder app)
var hubconfig=new Microsoft.AspNet.SignalR.HubConfiguration();
hubconfig.EnableJSONP = true;
app.UseCors(CorsOptions.AllowAll);
app.MapSignalR(hubconfig);
private void StartSignalRServer(StringBuilder sbLog)
try
this.SignalR = WebApp.Start(ServerURI); //This throws exception
//this.SignalR= WebApp.Start<Startup>(ServerURI);
sbLog.Append(string.Format("0--------SignalR Server Started------",Environment.NewLine));
catch (Exception ex)
sbLog.Append(string.Format("0Exception in StartSignalRServer=>1", Environment.NewLine,ex.Message));
异常:找不到给定输入的服务器工厂: Microsoft.Owin.Host.HttpListener
【问题讨论】:
【参考方案1】:Microsoft.Owin.Host.HttpListener
程序集是WebApp.Start
中的运行时引用。您需要将它包含在项目的引用中,以便它可以加载。检查 bin\Debug (etc) 目录以确保它被包含在内。也可以将其添加为 nuget 依赖项。
【讨论】:
您需要在“启动项目”中添加对HttpListener的引用。所以,如果你在另一个项目中使用WebApp.Start
,请小心。【参考方案2】:
安装包:
PM> Install-Package Microsoft.Owin.Host.HttpListener
【讨论】:
请注意,对于复制粘贴,您不应该使用 IncludePrerelease,除非您希望在您的应用程序中使用未经测试的代码。【参考方案3】:使用以下命令从 Nuget 安装 Microsoft.Owin.Host.HttpListener 包:
PM> Install-Package Microsoft.Owin.Host.HttpListener
(与之前的答案不同,您应该避免在生产代码中使用-IncludePrerelease
)
【讨论】:
【参考方案4】:我遇到了同样的错误。
在项目 A 中——我在一个函数中使用 WebApp.Start() 启动 owin Web 服务。 在项目 B 中——我在这里调用项目 A 的函数。不幸的是,项目 B 不是我的 .Net 解决方案的启动项目。 项目 C 是我的 .Net 解决方案启动项目。
如果我在解决方案的启动项目(即项目,C)中使用命令 Install-Package Microsoft.Owin.Host.HttpListener 安装 nuget 包,它工作正常。如果我在项目 B 中做同样的事情,它就不起作用。所以安装nuget包的时候要小心。
【讨论】:
以上是关于找不到给定输入的服务器工厂:Microsoft.Owin.Host.HttpListener的主要内容,如果未能解决你的问题,请参考以下文章
找不到工厂:javax.faces.context.FacesContextFactory
异常找不到工厂:javax.faces.application.ApplicationFactory
错误找不到工厂:javax.faces.context.FacesContextFactory
java.lang.IllegalStateException:找不到工厂 javax.faces.context.FacesContextFactory 的备份
java.lang.IllegalStateException:找不到工厂 javax.faces.application.ApplicationFactory 的备份