ASP.NET MVC Web アプリケーションを Azure Web App へ発行した場合、初回の表示が非常に遅い場合、次の設定を見直すと高速化できます。
常時接続をオン
Azure ポータルで、Web App の「アプリケーション設定」にある「常時接続」をオンにします。
「Web アプリを毎回読み込む必要があることを示します。既定では、Web アプリはアイドルになった後でアンロードされます。この Web アプリで実行されている継続的な Web ジョブがある場合は、このオプションを有効にすることをお勧めします」とのこと。
IIS の開始モード (startMode) 設定の “AlwaysRunning” が、この常時接続 (Always On) にあたるようです。
ファイル発行オプションでプリコンパイルする
Visual Studio の発行の「設定」で、ファイル発行オプションの「発行中にプリコンパイルする」にチェックします。また、「構成」ウィンドウの「プリコンパイル済みサイトを更新可能にする」のチェックを外します。
以上で、発行時に少し時間がかかりますが、初回アクセスの時間が早くなっているはずです。ただし、View のみの更新(cshtml ファイルのみを差し替え)などはできなくなります。
※ 「App_Dataフォルダーのファイルを除外する」は、発行時に App_Data フォルダーの内容を追加や更新したりしません。必要に応じてオン・オフしてください。
発行先の追加ファイルを削除する
プリコンパイルせず発行したことがある場合、プリコンパイルしたアプリの実行に不要なフォルダーがサーバーに残っているため「The directory ‘/App_GlobalResources/’ is not allowed because the application is precompiled」といったエラーが発生するかもしれません。
その場合、ファイル発行オプションの「発行先の追加ファイルを削除する」をチェックして発行すれば、プロジェクトにないファイル等は削除され、エラーが起きません。アプリでサーバーに直接ファイルを作っている場合は、それらのファイルも削除されるので注意してください。