3

iis6を使用してアプリケーションをデプロイしています。iis構成でタイムアウトを変更したり、global.asaxファイルを追加してSession.Timeoutを設定したり、sessionstateを使用したりしても、20分後もセッションタイムアウトが発生しますが、これはおかしいです。誰か助けてくれませんか?私はとても立ち往生しています。

web.config:

 <authentication mode="Forms">
          <forms name="__authcookie" loginUrl="LoginPage.aspx" timeout="60" protection="All" requireSSL="false" slidingExpiration="true" cookieless="UseDeviceProfile" enableCrossAppRedirects="false"/>
      </authentication>
      <sessionState mode="InProc" timeout="60" customProvider="AppFabricCacheSessionStoreProvider"></sessionState>
    <membership>
      <providers>
        <clear />
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
      </providers>
    </membership>
    <profile>
      <providers>
        <clear />
        <add name="AppFabricCacheSessionStoreProvider" type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider" cacheName="NamedCache1" sharedId="SharedApp"/>
        <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
      </providers>
    </profile>
4

3 に答える 3

6

これをweb.configファイルに含めます。

web.configを使用する

    <sessionState timeout="minutes"/> 

IISの使用

InternetServicesManagerで次のタイムアウトを変更します。デフォルトの20より大きい値を選択します。

  1. [デフォルトのWebサイト]>[プロパティ]>[ホームディレクトリ]>[アプリケーション設定]>[構成]>[オプション]を選択します。

  2. セッション状態のタイムアウトを有効にし、セッションタイムアウトを60分に設定します。

ここに画像の説明を入力してください

  1. [アプリケーションプール]>[DefaultAppPool]>[プロパティ]を選択します。

  2. [アイドルタイムアウト]の[パフォーマンス]タブで、アイドル状態の後にワーカープロセスをシャットダウンする値を20より大きく設定します。

ここに画像の説明を入力してください

IISのデフォルトのセッションタイムアウト設定は20分ですが、最大24時間または1440分に増やすことができます。

于 2012-05-14T09:04:39.617 に答える
5

私は最近この問題に苦しんでいます。タイムアウトを設定できる場所はさまざまなようですが、タイムアウトは、設定が最も短い属性の長さだけになります。これが私が発見したもののいくつかです...

  • 誰もが示唆しているように、web.configファイルの「 sessionState」ノードの「 timeout」属性を確認してください。この値は、web.configファイルで直接編集することも、@ Romilが上記で説明したようにIIS構成を介して編集することもできます(ただし、IISの新しいバージョンではUIが変更されていますが、設定は同様です)。

  • フォーム認証を実装している場合は、そのためのweb.configファイルにも追加のタイムアウト設定が定義されています。web.configで... system.web>authentication> formsノードを探し、「 timeout」属性を目的の分に変更します。

  • これが私が見落としていたものです...IIS(バージョン7.5は確かに、おそらく以前ですが、確認できません)で、関連するアプリケーションプールを右クリックし、[詳細設定]を選択します。「プロセスモデル」(必要に応じて展開)という見出しの下で、 「アイドルタイムアウト(分) 」の設定を探します。これを目的のタイムアウト(分単位)に設定します。--説明:sessionState>タイムアウト設定は、ブラウザにセッションIDを保存するCookieの有効期限に影響しますが、これはタイムアウトは、実際には、(使用されていない)ワーカープロセスをいつシャットダウンするかを決定します。プロセスがシャットダウンすると、既存のセッションIDが呼び出されなくなるため、ブラウザのCookie内のIDは使用できなくなります。

これが誰かに役立つことを願っています。この問題は私を何時間も夢中にさせ、sessionState設定を設定する以外に、これに関する情報がほとんどないことに本当に驚いています。

幸運、G

于 2012-07-25T17:41:20.023 に答える
0

Romilの回答は機能します。私が行った方法は、アプリケーションのセッションタイムアウトのみを変更し、アイドルタイムアウトは変更しないことでした。彼が示したように20分から60分に延長した後、それは機能します!

于 2012-05-15T01:39:15.293 に答える