web-dev-qa-db-fra.com

Puis-je définir des URL d'écoute dans appsettings.json dans l'aperçu ASP.net Core 2.0?

Je crée une application ASP.net Core 2.0 à exécuter sur le runtime .net Core 2.0, les deux actuellement dans leur version Preview. Cependant, je ne vois pas comment Kestrel utiliserait autre chose que l'URL d'écoute par défaut http://localhost:5000.

La plupart des documents que j'ai pu citer sur Google parlent d'un paramètre server.urls, qui semble avoir été modifié même dans l'aperçu 1.0 pour être simplement urls.

Beaucoup de documentation parle aussi d'un hosting.json et que je ne peux pas utiliser le fichier par défaut appsettings.json. Cependant, si je compare l'approche recommandée consistant à charger une nouvelle configuration, cela ressemble assez à ce que fait la nouvelle méthode WebHost.CreateDefaultBuilder , sauf qu'elle charge appsettings.json.

Actuellement, je ne comprends pas du tout le lien entre appsettings.json et IConfigureOptions<T>. Il est donc possible que mon problème provienne d'un manque de compréhension de ce que KestrelServerOptionsSetup fait réellement.

7
Henry

Je l'ai eu avec ça

public static IWebHost BuildWebHost(string[] args) => 
        WebHost.CreateDefaultBuilder(args)
            .UseConfiguration(new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("hosting.json", optional: true)
                .Build()
            )
            .UseStartup<Startup>()
            .Build();

Et le hosting.json

{ "urls": "http://*:5005;" }
13
Ígor Krug

Fonctionne pour moi comme il l'était

WebHost.CreateDefaultBuilder(args)
    .UseConfiguration( new ConfigurationBuilder().AddCommandLine(args).Build() )
    .UseStartup<Startup>()
    .Build();

Ensuite 

dotnet myapp.dll --urls "http://*:5060;"
2
Johann Medina

Pour définir les URL d'écoute dans appsettings.json, ajoutez la section "Kestrel":

"Kestrel": {
    "EndPoints": {
        "Http": {
            "Url": "http://localhost:5000"
        }
    }
}

Référence: https://docs.Microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.2

0
John Sivertsen

Aucun de ce qui précède n'a fonctionné pour moi. Celui-ci a fonctionné pour moi:

public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
            .UseKestrel(options =>
            {
                options.Listen(System.Net.IPAddress.Loopback, 44306, listenOptions =>
                {
                    listenOptions.UseHttps("mysertificate.pfx", "thecertificatePassword");
                });
            })
        .Build();

(Remplacez le 44306 par un port de votre choix)

Et il pourrait y avoir beaucoup d’aide dans cette réponse StackOverflow

0
netfed