0

Azure で WebApp を実行しています。WebApp の目的は、Azure ストレージ キューからのジョブを処理することです。常にオンに設定されています。問題は、Azure 管理ポータルで WebApp を停止しても、ジョブが実際に停止しないことです。

次のようにジョブをインスタンス化しました。

class Program
    {
        static void Main()
        {
                string connectionString = ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString;

                JobHostConfiguration config = new JobHostConfiguration(connectionString);
                config.NameResolver = new QueueNameResolver();

                JobHost host = new JobHost(config);

                // The following code ensures that the WebJob will be running continuously
                host.RunAndBlock();
        }
    }

キューを処理する関数は次のとおりです。

public static void ProcessQueueMessage([QueueTrigger("%apilogeventqueue%")] CloudQueueMessage messageEnvelope, TextWriter log, CancellationToken token)
{

}

トレース ログがあるので、ジョブが実際に停止することはありません。

4

1 に答える 1

1

Web ジョブは、ホスト WebAppの特別なSCM (ソース管理管理) サイトで実行されます。ポータルで WebApp を停止しても、WebApp のこの SCM 部分は引き続き実行されます。これは、停止しても使用できる必要がある管理機能を WebApp に提供するためです。

Web ジョブの実行を停止するには、ジョブ リストでジョブを右クリックし、[停止] を選択して、ポータル UI で Web ジョブを無効にできます。WEBJOBS_STOPPEDアプリ設定を 1 に設定することで、WebApp のすべてのジョブを停止することもできます(詳細はこちら)。

于 2015-12-23T16:02:15.170 に答える