IIS7.0で諸々設定したので、忘れないうちにメモ。
デフォルトのままだとあまり使いものにならないという印象。
32bitアプリケーションの許可
利用DLLが32bitのみ対応なので、配置DLLを32bitで作成する必要あり。
アプリケーションプールの詳細設定にて、「32bitアプリケーションの許可」を falseからtrueに変更。
コンテンツ圧縮化
IISはデフォルトだと、動的コンテンツは圧縮されない。
高速化の為、以下で圧縮対応。
- IISの機能に「動的コンテンツを圧縮する」を追加。
- 以下コマンド実行により、 application/json を圧縮するように設定変更。
C:\Windows\System32\inetsrv\appcmd.exe
set config -section:system.webServer/httpCompression
/+"dynamicTypes.[mimeType='application/json',enabled='True']" /commit:apphost
アプリケーションプール常時起動
リサイクル後や再起動時もアプリケーションを常時起動にする。
- アプリケーションプールの開始モードを AlwaysRunning に変更。
- Webサイトの有効化されたプリロードを True に設定。
アプリケーションプール設定変更
32bitの場合、そもそも2GBまでメモリが使えず、利用メモリを適切に設定しないと、メモリ不足エラーが頻発する。
- CPU制限 75%(75000)
- actionを Throttle に設定
- リサイクルで"定期的な時間"、"利用メモリ"を設定。
セッション管理をserverstateに切り替える
デフォルトはInProcだが、この場合、リサイクル発生時にセッションが切れてしまうので、変更する。
- サービスの「ASP.NET State Service」を自動起動とし、開始する。
- web.config を修正。
<sessionState mode="StateServer"
stateConnectionString="tcpip=127.0.0.1:42424"
cookieless="false" timeout="240" stateNetworkTimeout="30" />
アプリケーションプールの「ラピッドフェール設定」を無効にする
「ラピッドフェール設定」が有効の場合、複数回のアプリケーションプールリサイクル失敗でそのままシャットダウンされてしまうので、これを無効にする。