wake-up-neo.com

Asp.Net Core Web API-App: Wie ändere ich die Abhöradresse?

Ich schreibe eine einfache Asp.Net Core WebAPI 2.0-Anwendung, die auf meinem lokalen Computer funktioniert. Aber ich möchte es auf dem Server bereitstellen. Also mache ich es.

Mein System:

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

Aber wenn die App startet, schreibt sie:

Now listening on:http://localhost:53115

Wenn ich versuche, Werte daraus zu erhalten:

  http://id_address:53115/api/values

Und ich kann keine Antwort bekommen. Im Postboten:

 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

Was sollte ich tun? Können Sie mir sagen, wie ich das beheben kann?

Ich weiß nicht, wo ich anfangen soll zu suchen.

Vielen Dank!

3
Admiral Land

Ich verwende .NETCore 2.1, daher konnte ich es nicht selbst testen, aber wenn ich der Meinung bin, dass https://www.billbogaiv.com/posts/setting-aspnet-Host-address-in-net -core-2 Wenn Sie .UseUrls(urls: "http://*:5000") hinzufügen, wird Kestrel möglicherweise angewiesen, Port 5000 zu überwachen und nicht nur localhost. Daher sollte es auch auf einem Remote-Server funktionieren.

Andere mögliche Lösungen: UseKestrel(..)https://docs.Microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.1&tabs=aspnetcore2x Verwenden von IPAddress.Any anstelle von Loopback.

3
Daboul

Dies wird von Server URLs Host Konfiguration konfiguriert 

Gibt die IP-Adressen oder Host-Adressen mit Ports und Protokollen an, die der Server auf Anforderungen überwachen soll.
Taste : URLs
Typ : Zeichenfolge
Standardeinstellung : http: // localhost: 5000
Set mit : UseUrls
Umgebungsvariable: ASPNETCORE_URLS 

Legen Sie eine durch Semikolons getrennte (;) Liste von URL-Präfixen fest, auf die der Server antworten soll. 


Es ist auch möglich, die URL mithilfe von Befehlszeilenargumenten festzulegen. Zum Beispiel:

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

dies funktioniert jedoch nicht für ältere Versionen von ASP.NET Core ( hängt davon ab, ob dieser Fix auf die verwendete Version angewendet wurde oder nicht ).

Ein Workaround für alte Versionen basiert auf der Tatsache, dass Sie die Host-Einstellungen immer direkt über die .UseConfiguration-Methode festlegen können:

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

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

Beachten Sie, dass dieselbe Idee verwendet werden kann, um den Einstellungswert aus einer anderen Konfigurationsquelle zu lesen, wie zum Beispiel Konfigurationsdatei .

2
Set