J'ai ajouté la section suivante dans project.json
.
"commands": {
"run": "run server.urls=http://localhost:8082",
"web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://localhost:8082",
"weblistener": "Microsoft.AspNet.Hosting --server WebListener --server.urls http://localhost:8082"
},
Cependant, il affiche toujours "En cours d'écoute sur: http: // localhost: 5000 " lorsqu'il est exécuté à l'aide de dotnet myapp.dll
?
BTW, les clients d'une autre machine pourront-ils accéder au service?
Oui, cela sera accessible à partir d’autres machines si vous utilisez une adresse IP externe. Par exemple, la liaison à http://*:80
. Notez que la liaison à http://localhost:80
ne lie que sur l'interface 127.0.0.1 et ne sera donc pas accessible depuis d'autres machines.
Visual Studio redéfinit votre port. Vous pouvez modifier le port du VS en modifiant ce fichier Properties\launchSettings.json
ou bien le définir avec le code suivant:
var Host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.UseUrls("http://*:80") // <-----
.Build();
Host.Run();
Un guide pas à pas utilisant un fichier de configuration externe est disponible ici .
Nous pouvons utiliser cette commande pour exécuter notre projet hôte via Windows Powershell sans IIS et visual studio sur un port séparé. Le serveur Web par défaut de krestel est 5001
$env:ASPNETCORE_URLS="http://localhost:22742" ; dotnet run
vous pouvez aussi coder comme ça
IConfiguration config = new ConfigurationBuilder()
.AddCommandLine(args)
.Build();
var Host = new WebHostBuilder()
.UseConfiguration(config)
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>()
.Build();
et configurez votre application par ligne de commande: dotnet run --server.urls http: // *: 5555