ユーザーのいない新しいアプリケーションがあります。Azureに初めて公開するときに、コードがコンパイルされるときに遅延が発生することを知っています。ただし、アプリケーションを使用した後、約30分後に再度アクセスしようとすると、最初は非常に遅く、アクセスすると速くなります。MVC4を使用し、ログイン認証のためにSQLServerに接続するアプリケーション。
タイムアウトや遅延はありますか?しばらく使用すると、サービスがスリープモードになってウェイクアップしますか?
ユーザーのいない新しいアプリケーションがあります。Azureに初めて公開するときに、コードがコンパイルされるときに遅延が発生することを知っています。ただし、アプリケーションを使用した後、約30分後に再度アクセスしようとすると、最初は非常に遅く、アクセスすると速くなります。MVC4を使用し、ログイン認証のためにSQLServerに接続するアプリケーション。
タイムアウトや遅延はありますか?しばらく使用すると、サービスがスリープモードになってウェイクアップしますか?
既定では、サーバー リソースを節約するために、IIS は非アクティブ状態が 20 分間続くとアプリケーション プールをシャットダウンします。 http://technet.microsoft.com/en-us/library/cc771956(v=ws.10).aspx
ここで、Azure をさらに興味深いものにするために、私の知る限り、アプリケーションの web.config ファイルからこの設定を構成することはできず、UI、コマンド ライン、または machine.config ファイルのいずれかを使用して構成します。しかし、希望はあります!
これは、Web/worker ロールを使用していることを前提としており、新しい Web サイトではありません。
IIS 構成を行う Web ロールのスタートアップ タスクを作成する必要があります。起動時に実行するように Web ロールに指示する単純なバッチ ファイルです。 詳細はこちらにありますが、基本的に .cmd ファイルは次のようになります。
REM *** This keeps this file from running on your local emulator.
if "%EMULATED%"=="true" goto :EOF
REM *** Prevent the IIS app pools from shutting down due to being idle.
%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.processModel.idleTimeout:00:00:00
REM *** Prevent IIS app pool recycles from recycling on the default schedule of 1740 minutes (29 hours).
%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.recycling.periodicRestart.time:00:00:00
また、serviceDefintion.csdef ファイルに、次のスキーマ要素を追加します (ファイルを Web アプリケーションのスタートアップ フォルダーに配置し、disableTimeout.cmd という名前を付けたと仮定します)。
<Startup>
<Task commandLine="startup\disableTimeout.cmd" executionContext="elevated" />
</Startup>
アプリケーション プールのリサイクルとアイドル タイムアウトには正当な理由がある場合がありますが、サイトのトラフィックが少ない場合は、それほど頻繁に発生しないように調整できます。