web-dev-qa-db-ja.com

IISセッションタイムアウトとASP.NETセッションタイムアウト

IIS 6(および他のバージョンも可))では、[プロパティ]-> [ホームディレクトリ]タブ-> [構成]ボタン-> [オプション]タブにセッションタイムアウト設定があります。

picture of IIS dialog

ASP.NET web.configには、SessionState設定があり、次のようになります。

<system.web>
    <sessionState timeout="120" />
    <!-- etc .. -->
</system.web>

それらは、たまたま、関連していますか?同じものを設定しますか、それとも別のものを設定しますか?

37
codeulike

彼らは同じではありません。 IISセッションタイムアウトはクラシックASPページ用です。web.configはasp.net用です。

44
olle

IIS設定は、私が知る限り、ASP.NETセッションには影響しません。これらはweb.configで設定する必要があります。

11
Mark Bell

アプリケーションプールのアイドルタイムアウトも考慮する必要があります。アプリケーションプールの設定は、アプリケーションが割り当てられているアプリケーションプールの[プロパティ](IIS 6)または[詳細設定](IIS 7.5)をクリックすると見つかります。

この値がセッションのタイムアウトに設定されていることを確認し、すべてのセッションがセッションタイムアウト期間全体にわたって持続するようにします。

これら2つの値が相互に依存しているのは、セッション情報が実際にはアプリケーションプールのワーカープロセス内に格納されるためです。つまり、ワーカープロセスが何らかの理由でシャットダウンまたは強制終了された場合、セッション情報は失われます。

4
J.R.