.NET コンソール アプリケーションを Azure Web App for Containers で実行するのはそれほど簡単ではないことを学びました。その理由は、コンソール アプリが Azure ランタイムによる ping に応答する必要があるためです。アプリが応答しない場合、応答していないと見なされ、シャットダウンされます。
これで、コンソール アプリからこれらの ping に応答できるはずですよね? そのようなアプリはどのように見えますか?
私はこれを試しましたが、役に立ちませんでした:
using System.Net;
var listenToAddress = "http://localhost:80/";
var _httpListener = new HttpListener { Prefixes = { $"{listenToAddress}" } };
_httpListener.Start();
while (true)
{
var context = await _httpListener.GetContextAsync();
context.Response.StatusCode = 200;
context.Response.Close();
}
これは、ポート 80 でリクエストをリッスンし、常に成功を返す必要があります。うまくいかないようです。これを実行するために調整する必要があるのは、単なる詳細であることを願っています.
これまでのところ、「HTTP pingに応答しませんでした」というエラーが常に発生します。
INFO - Waiting for response to warmup request for container app-console-test-westeurope_0_7ccb74c8. Elapsed time = 219.056086 sec
ERROR - Container app-console-test-westeurope_0_7ccb74c8 for site app-console-test-westeurope did not start within expected time limit. Elapsed time = 230.328528 sec
ERROR - Container app-console-test-westeurope_0_7ccb74c8 didn't respond to HTTP pings on port: 80, failing site start. See container logs for debugging.
INFO - Stopping site app-console-test-westeurope because it failed during startup.
ランタイムが「ping」に応答するには、何をしなければなりませんか? このpingはどのように見えますか? HttpListener はそれを処理するための適切なツールですか? URLは正しいですか?http/httpsのことですか?答えとして0以外のボディが必要ですか?
詳しい人が声をかけてくれるかもしれません。