2

私は、Swisscom AppcloudでASP.NET Core MVC Webアプリケーションを実行しようとしています。私はコンソールにエラー・メッセージを以下取得アプリケーションを起動したときしかし:ASP.NET Core MVCヘルスチェックに失敗する

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

その私のアプリケーションの状態を確認することができませんAppcloudのように見えます。これを稼働させるには、Nuget-Packageなどをインストールする必要がありますか?デフォルトでは、あなたの努力

+0

ここには専門家ではなく、確かにそれは多分、このPAGをクラウドファウンドリーを使用している場合eはいくつかの洞察を提供することができます:https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html –

+0

@PeterBこれは役に立ちませんでしたが、あなたの努力のために – Yannik

答えて

3

gsmachadoはすでに述べたように、特定のポートをリスンする必要があります。

.NET Coreビルドパックは、アプリケーションWebサーバーを自動的に設定しますので、自分で処理する必要はありません。しかしビルドパックがこの情報をコマンドライン経由であなたのアプリに届けるような方法であなたのアプリを準備する必要があります。

buildpackは、次のコマンドを使用してアプリを起動します:

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

そのため、コンフィギュレーションプロバイダーとして、コマンド行を追加する必要があり、その後WebHostBuilder

に設定を渡すためにUseConfiguration拡張子を追加します

例:

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

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

ため

おかげで、クラウドファウンドリーは、アプリケーションが公開しているポートに接続しようとすることにより、ヘルスチェックを行います。

アプリケーションが(例えば、それがAPIを使用したWebサービスではありませんなど)の任意のポートを露出していない場合hereが説明するように、あなたは、nonehealth-check-type属性を追加する必要があります。

それでもエラーが発生する場合は、アプリケーションが特定のポートをリッスンしている場所を見つけることをお勧めします。 Cloud Foundryでは、環境変数である$PORTを聞く必要があります。そのhereの例を確認することができます。

関連する問題