2

Ich versuche, eine ASP.NET Core MVC Webanwendung auf der Swisscom Appcloud auszuführen. Aber wenn ich die Anwendung zu starten bekomme ich folgende Fehlermeldung in der Konsole:ASP.NET Core MVC Health Check schlägt fehl

2017-01-24 14:29:53 [CELL/0] ERR Timed out after 1m0s: health check never passed. 

Sein sieht aus wie die AppCloud kann nicht die Gesundheit meiner Anwendung überprüfen. Muss ich ein Nuget-Paket oder etwas anderes installieren, um das zu starten?

Vielen Dank für Ihre Mühe

+0

Kein Experte hier, aber wenn in der Tat verwendet es Cloud Foundry dann vielleicht diese pag e kann einen Einblick geben: https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html –

+0

@PeterB dies war nicht hilfreich, aber thats für Ihre Mühe – Yannik

Antwort

3

Wie gsmachado bereits erwähnt hat, müssen Sie auf einen bestimmten Port hören.

Das .NET Core-Buildpack konfiguriert den App-Webserver automatisch, sodass Sie dies nicht selbst behandeln müssen. Sie müssen Ihre App jedoch so vorbereiten, dass das Buildpack diese Informationen über die Befehlszeile an Ihre App senden kann.

Die buildpack wird Ihre App mit dem folgenden Befehl starten:

$ dotnet run --server.urls http://0.0.0.0:${PORT}

Deshalb müssen Sie die Befehlszeile als Konfigurationsanbieter hinzufügen und dann die UseConfiguration Erweiterung fügen Sie die Konfiguration in die WebHostBuilder passieren

zB:

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

var host = new WebHostBuilder() 
    .UseKestrel() 
    .UseConfiguration(config) 
    .UseStartup<Startup>() 
    .Build(); 
5

standardmäßig macht Cloud Foundry einen Gesundheitscheck, indem Sie versuchen, um den Anschluss zu verbinden, die die Anwendung auszusetzen ist.

Wenn Ihre Anwendung nicht ein beliebig Port aussetzt (zum Beispiel ist es nicht ein Web-Service mit APIs und so weiter), dann sollten Sie das health-check-type Attribut none hinzufügen, wie here beschrieben.

Wenn danach immer noch Fehler auftreten, dann empfehle ich Ihnen, wo Ihre Anwendung einen bestimmten Port abgehört. In Cloud Foundry müssen Sie $PORT anhören, was eine Umgebungsvariable ist. Sie können ein Beispiel dafür here überprüfen.

Verwandte Themen