asp.net - net - sessionstate mode inproc timeout 120/>




ASP.NETでのセッションタイムアウト (10)

ASP.Netコア1.0(vNextまたはそれに使用されている名前)セッションは異なる実装です。 Startup.csでセッションのタイムアウト値を変更し、 void ConfigureServicesを使用してvoid ConfigureServicesを変更しました。

services.AddSession(options => options.IdleTimeout = TimeSpan.FromSeconds(42));

または、 appsettings.jsonファイルを使用する場合は、次のようにすることができます。

// Appsettings.json
"SessionOptions": {
    "IdleTimeout": "00:30:00"
}

// Startup.cs
services.AddSession(options => options.IdleTimeout = TimeSpan.Parse(Config.GetSection("SessionOptions")["IdleTimeout"]));

私はIIS 6.0でASP.NET 2.0アプリケーションを実行しています。 セッションのタイムアウトをデフォルトの20分ではなく60分にしたい。 私は次のことをした

  1. web.configで設定
  2. IISマネージャ/ Webサイトのプロパティ/ ASP.NET構成設定でセッションタイムアウトを60分に設定する
  3. アプリケーションプールのプロパティ/パフォーマンスで、アイドルタイムアウトを60分に設定します。

私はまだ20分でセッションのタイムアウトを取得しています。 私に必要なことは他にありますか?


IISでセッションタイムアウト値を変更したら、IISを再起動してください。 これを達成するには、コマンドプロンプトに移動します。 IISRESETと入力し、Enterキーを押します。


Timeoutプロパティは、アプリケーションのSessionオブジェクトに割り当てられたタイムアウト時間を分単位で指定します。 ユーザーがタイムアウト期間内にページをリフレッシュまたは要求しない場合、セッションは終了します。

IIS 6.0:許可される最小値は1分で、最大値は1440分です。

Session.Timeout = 600;

machine.configに何か影響がありますか? web.configでセッションのタイムアウトを設定すると、IISまたはmachine.configの設定が上書きされますが、アプリケーションのサブフォルダのどこかにweb.configファイルがある場合、その設定はアプリケーションのルートにある設定を上書きします。

また、正しく覚えていれば、IISのタイムアウトは.aspxではなく.aspページにのみ影響します。 web.configのセッションコードが正しいと確信していますか? それは次のようになります:

<sessionState
    mode="InProc"
    stateConnectionString="tcpip=127.0.0.1:42424"
    stateNetworkTimeout="60"
    sqlConnectionString="data source=127.0.0.1;Integrated Security=SSPI"
    cookieless="false"
    timeout="60"
/>


ここで設定を見つけることができますIISで:

サーバレベル、ウェブサイトレベル、またはアプリレベルの「ASP」にあります。

私はここでweb.configレベルで設定できると思います。 これをあなた自身で確認してください。

<configuration>
   <system.web>

      <!-- Session Timeout in Minutes (Also in Global.asax) -->
       <sessionState timeout="1440"/>

   </system.web>
</configuration>

フォーム認証を使用していますか?

フォーム認証では、タイムアウトに独自の値が使用されます(デフォルトでは30分)。 フォーム認証のタイムアウトは、セッションを有効にしたままログインページにユーザーを送ります。 これは、セッションがタイムアウトしたときにアプリが提供する動作のように見えるかもしれません。

<system.web>
    <authentication mode="Forms">
          <forms timeout="50"/>
    </authentication>

    <sessionState timeout="60"  />
</system.web>

フォームのタイムアウトをセッションタイムアウトよりも短い時間に設定すると、セッションデータを失うことなくログインするためのウィンドウが表示されます。


削除するよりもWebサイトのセッションタイムアウトが必要な場合

<authentication mode="Forms">
      <forms timeout="50"/>
</authentication>

web.configファイルのタグ。


私はweb.configやIISについて知らない。 しかし、私はC#のコードから、あなたはそれを好きになると信じています

Session.Timeout = 60; // 60 is number of minutes

認証を使用している場合は、web.configファイルに次の行を追加することをお勧めします。

私の場合、ユーザーはタイムアウト時にログインページにリダイレクトされます:

<authentication mode="Forms">
    <forms defaultUrl="Login.aspx" timeout="120"/>
</authentication>






timeout