web-dev-qa-db-fra.com

Application API Web Asp.Net Core: comment changer l'adresse d'écoute?

J'écris simple application Asp.Net Core WebAPI 2.0, cela fonctionne sur mon ordinateur local. Mais je veux le déployer sur le serveur. Alors je le fais.

Mon système:

Ubuntu 16.04.
Asp.Net WebAPI 2.0 (and dotnet version 2.1.105)

Mais, lorsque l'application démarre, il écrit:

Now listening on:http://localhost:53115

Quand j'essaie d'obtenir des valeurs:

  http://id_address:53115/api/values

Et je ne peux pas obtenir de réponse. Dans le facteur:

 Could not get any response
 There was an error connecting to 
 http://id_address:53115/api/values.
 Why this might have happened:
 The server couldn't send a response:
 Ensure that the backend is working properly
 Self-signed SSL certificates are being blocked:
 Fix this by turning off 'SSL certificate verification' in Settings > General
 Proxy configured incorrectly
 Ensure that proxy is configured correctly in Settings > Proxy
 Request timeout:
 Change request timeout in Settings > General

Ce que je devrais faire? Pouvez-vous me dire comment résoudre ce problème?

Je ne sais pas par où commencer.

Je vous remercie!

3
Admiral Land

J'utilise .NETCore 2.1 prev, donc je n'ai pas été en mesure de le tester moi-même, mais si je crois que https://www.billbogaiv.com/posts/setting-aspnet-Host-address-in-net -core-2 , l'ajout de .UseUrls(urls: "http://*:5000") pourrait éventuellement indiquer à Kestrel d'écouter le port 5000 et pas seulement sur localhost. Il devrait donc également fonctionner sur un serveur distant.

Autre solution possible, UseKestrel(..)https://docs.Microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.1&tabs=aspnetcore2x en utilisant IPAddress.Any au lieu de Loopback.

3
Daboul

Ceci est configuré par URL du serveur Configuration de l'hôte 

Indique les adresses IP ou adresses hôte avec les ports et les protocoles sur lesquels le serveur doit écouter les demandes.
Key : urls
Type : chaîne
Par défaut : http: // localhost: 5000
Défini à l'aide de : UseUrls
Variable d'environnement: ASPNETCORE_URLS 

Définissez une liste de préfixes d'URL (;) séparés par des points-virgules (;) auxquels le serveur doit répondre. 


Il est également possible de définir une URL à l'aide d'arguments de ligne de commande. Par exemple:

dotnet run --urls = http://0.0.0.0:5:5001

mais cela ne fonctionne pas immédiatement avec les anciennes versions d'ASP.NET Core ( dépend de si ce correctif s'applique à la version utilisée ou non ).

Solution de contournement pour les anciennes versions basée sur le fait que vous pouvez toujours définir les paramètres de l'hôte directement via la méthode .UseConfiguration:

var config = new ConfigurationBuilder().AddCommandLine(args).Build();

return WebHost.CreateDefaultBuilder(args)
        .UseConfiguration(config)

Notez que la même idée peut être utilisée pour lire la valeur du paramètre depuis n’importe quelle autre source de configuration, telle que fichier de configuration par exemple.

2
Set