2017-11-19 12 views

答えて

2

ではありません。要求は接続を必要とし、起動時にアプリケーションが完全に構成されていない/起動されていません。また、要求はhttpコンテキスト(基本的に要求を表す)のインスタンスを要求します。これはStartupから行うことはできません。

は、基本的には二つの選択肢に沸く:

  1. は、アプリケーションがデプロイまたは開始されたときに、エンドポイントを呼び出しますPowerShellの/バッチ/ bashスクリプトを作成します。

    IISまたはAzure App Serviceを使用してアプリケーションをホストする場合は、Custom Warm-upの設定をweb.configに設定できます。

    <applicationInitialization> 
        <add initializationPage="/" hostName="[app hostname]" /> 
        <add initializationPage="/Home/About" hostname="[app hostname]" /> 
    </applicationInitialization> 
    
  2. オプションは、コードをリファクタリングし、サービスへのキャッシュを必要とするものを引き出し、その後、アプリケーションの起動時に、それを解決し、一度それを実行することです。 ASP.NETコアの場合、これはProgram.csMainメソッドで行う必要があります。

    my answer hereを参照して、アプリケーションの起動時にウォームアップを設定する方法を確認してください。投稿はの移行をに適用することについてですが、キャッシュのウォームアップにも同じ手法を適用できます。

    Startup.Configureの中でウォームアップを実行しないでください。DbContextを検出している間にdotnet ef ...のようなツールが実行されるため、ASP.NET Core 1.xでは一般的でした。

0

あなたは別のサービスでは、コントローラのメソッドのロジックを引き出し、スタートアプリケーションの場合にはそれを使用することができます

関連する問題