19

IIS 7.5アプリケーション初期化拡張機能を使用して、Webアプリケーションのウォームアッププロセスを構成しようとしています。これは、アプリケーションプールのリサイクルによって引き起こされる速度低下を最小限に抑えるために私が取っているアプローチです。これは、StackOverflowに関する他の質問でよく説明されている問題です。

私が望んでいるのは、他の場所でリクエストを再マッピングすることなく、アプリケーションの初期化のメリットを享受することです。

私がこれまでにしたこと

基本的な使用例についてはIIS8の手順に従いましたが、うまく機能しています。app_starting.htmというスプラッシュページを作成しました。このコードを使用すると、アプリの初期化中に表示されます。

<applicationInitialization remapManagedRequestsTo="app_starting.htm" skipManagedModules="true" >
    <add initializationPage="/" />
</applicationInitialization>

なぜこれが良くないのか

初期化を使用して、ASP.NETMVCを使用して記述されたRESTベースのWebサービスへの要求を高速化したい。このWebサービスは、いくつかのアプリケーションのバックエンドです。リソース(つまり/client/1/addresses)にリクエストを送信すると、代わりにスプラッシュページの受信を処理できなくなります。

私が試したこと

remapManagedRequestsTo属性を削除しました。ただし、初期化中にリソースを要求すると、初期化が完了するまで500エラーが発生します。その後、応答は通常に戻ります。このサービスに依存するアプリケーションも、初期化がエラー状態であってはならないため、500エラーにうまく応答しません。

必要なもの

再マッピングを実行せずに、リクエストの動作が通常に戻ることを期待しています。初期化が進行中の場合でも、アプリケーションへの他の要求はキューに入れられ、初期化が完了するまで待つ必要があります。

足りないものはありますか?これを達成できますか?

助けてくれてありがとう!

4

1 に答える 1

28

私は自分の質問に答えたと思います。skipManagedModules属性を削除して機能しました。このコードはアプリケーションの初期化を完了し、ウォームアップ中、リクエストは処理が完了する前に完了するのを待っているようです。

<applicationInitialization>
    <add initializationPage="/" />
</applicationInitialization>

なぜこのように動作するのかについてのドキュメントが見つからず、そのskipManagedModules意味がよくわかりません。誰かがこれをさらに説明できるなら、私はその説明を答えとしてマークすることができます。ありがとう!

于 2013-03-12T17:08:48.537 に答える