web-dev-qa-db-fra.com

La fabrique de serveurs n'a pas pu être localisée pour l'entrée donnée: Microsoft.Owin.Host.HttpListener

J'ai implémenté signalR dans le service de fenêtre.

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));
        }
}

Exception: la fabrique de serveurs n'a pas pu être localisée pour l'entrée donnée: Microsoft.Owin.Host.HttpListener

50
jignesh

L'assembly Microsoft.Owin.Host.HttpListener est une référence d'exécution dans WebApp.Start. Vous devez l'inclure dans les références du projet pour qu'il soit disponible pour le chargement. Vérifiez le répertoire bin\Debug (etc) pour vous assurer qu'il est inclus. Peut aussi bien l'ajouter en tant que dépendance nuget.

79
skoz

Installez le package:

PM> Install-Package -IncludePrerelease Microsoft.Owin.Host.HttpListener
37
sedatiko

Installez le package Microsoft.Owin.Host.HttpListener à partir de Nuget en utilisant:

PM> Install-Package Microsoft.Owin.Host.HttpListener

(contrairement à une réponse antérieure, vous devez éviter d'utiliser -IncludePrerelease dans le code de production)

9
Owen Pauling