web-dev-qa-db-ja.com

asp.net mvcのセッションの変数タイムアウトのデフォルト値を変更する

かみそりビューエンジンを備えたAsp.net Mvcアプリケーションがあり、変数Session['user']:ユーザーがアプリケーションにログオンするときSession['user'] = loginそしてログアウトでは、この変数はNullの値を取ります。

問題は、短いタイムアウトが発生し、セッション変数が期限切れになることです。アプリケーションにログオンした後、1分以内に何もしなければSession['user'] =null自動的に。

それでは、プログラムによって変更されるまで、セッションの変数のタイムアウトを無制限に設定するにはどうすればよいですか?

13
Lamloumi Afif

それでは、プログラムによって変更されるまで、セッションの変数のタイムアウトを無制限に設定するにはどうすればよいですか?

timeout値を無制限に設定することはできません。

web.configtimeout要素のsessionState属性を使用して、タイムアウト値を分単位で増やすことができます。


セッション状態の設定

デフォルトでは、ASP.NETはCookieを使用して、特定のセッションに属するリクエストを識別します。 Cookieを使用できない場合、セッションIDをURLに追加することにより、セッションを追跡できます。 Cookieを無効にするには、sessionState cookieless="true".(120 =分)を設定します

<sessionState mode="StateServer" cookieless="false" timeout="120"/>

これを確認してください セッションタイムアウト

29
Arun Chandran C

無制限に割り当てることはできません。 web.configのセッション状態要素のタイムアウト属性を使用して、値を分単位で増やすことができます

<sessionState timeout="30">
</sessionState>

デフォルトでは、セッションタイムアウト値は20分です。また、フォーム認証を使用している場合は、認証タイムアウト値も確認してください

<authentication mode="Forms">
   <forms loginUrl="logon.aspx" 
   protection="All" path="/" timeout="30" />
</authentication>  
14
ssilas777

変数ではなく、セッションのタイムアウトです。数分で構成に設定します

<sessionState timeout="30" />
8

セッションのタイムアウトを無制限に設定することはできません。代わりに、セッションタイムアウトを高い値の例に設定します。

<configuration>
   <system.web>
    <sessionState mode="InProc" timeout="350" />
    </system.web>
</configuration>
7
Minal Raniga

以前に同様の問題が発生しましたが、セッションタイムアウト値に関するものではありませんでした。そのため、現在はタイムアウト期間についてです。このセッションタイムアウトは20分以上に設定できますが、ホスティングサーバーまたはコンピュータが(非常に低い on [〜#〜] memory [〜#〜]の場合です。その後、セッション値はクリアされ、ユーザーは時々再度ログインする必要があります。

このメモリ不足は、サーバー上のファイルとして保存する代わりに、データベース内のSTORING IMAGESまたはBINARY VALUESが原因である場合があり、System.IO.Fileプロシージャを使用してアクセスします。そのため、いくつかのレコードをフェッチしようとすると、テーブル上のそれらのIMAGESデータもフェッチされるため、パフォーマンスが大幅に低下し、利用可能なメモリが過剰に消費されます。

あなたのコンピュータORホスティングメモリが非常に少ない(ストレージスペースではない)

お役に立てれば。

0