Не удалось найти серверную фабрику для данного входа: 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 в производственном коде)