Не удалось найти серверную фабрику для данного входа: Microsoft.Owin.Host.HttpListener
У меня есть реализация 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("{0}Exception in StartSignalRServer=>{1}", Environment.NewLine,ex.Message));
}
}
Исключение: фабрика сервера не может быть расположена для данного входа: Microsoft.Owin.Host.HttpListener
Ответы
Ответ 1
Сборка Microsoft.Owin.Host.HttpListener
является ссылкой на среду выполнения в WebApp.Start
. Вы должны включить его в ссылки проекта, чтобы он был доступен для загрузки. Проверьте каталог bin\Debug (и т.д.), Чтобы убедиться, что он включен. Можно также добавить его как зависимость от nuget.
Ответ 2
Установите пакет:
PM> Install-Package -IncludePrerelease Microsoft.Owin.Host.HttpListener
Ответ 3
Установите пакет Microsoft.Owin.Host.HttpListener из Nuget, используя:
PM> Install-Package Microsoft.Owin.Host.HttpListener
(в отличие от более раннего ответа, вам следует избегать использования -IncludePrerelease
в производственном коде)