0

おかしな問題!ASP.NET セッションは即座に期限切れになります。私の web.config には、次のセッション設定があります。

<sessionState mode="InProc" timeout="10000" />

私の知る限り、タイムアウト属性の値は分単位であり、525,600 分 (1 年) を超えることはできません。ここで何が間違っているのかわかりません。セッションが期限切れになるのはなぜですか。サーバーのメモリの問題ですか?私はそうは思いません。サーバーはかなり落ち込んでいて、結局のところあまり機能していないサイトが 1 つしかありません。アイデア?
編集:
cookieless 属性を true に設定した後、URL のセッション ID に気付きながら、セッション ID がCHANGINGであることを確認できます。これは、セッションが期限切れになることを意味すると思います。IIS 設定は私の知る限り正しいです (セッション状態を有効にするチェックボックスがオンになっており、時間の値は 20 です)。写真は 100 語の価値があります:

alt テキスト http://img148.imageshack.us/img148/5053/sessionstate.jpg

4

5 に答える 5

1

お使いのブラウザが Cookie を正しく保存していない可能性があります。セッションをcookielessモードに設定して、もう一度やり直してください。

<sessionState mode="InProc" timeout="10000" cookieless="true" />
于 2009-08-12T12:44:05.200 に答える
0

これは私に数回起こりました、そして、主な犯人はいつもそうでした。

誰かがWebアプリケーションのファイルを更新して再起動しました。これは通常、誰かがweb.configの何かを更新することを決定したときに、これによってすべてのセッションがドロップされることに気付かずに発生します。

私にとってそれを引き起こした他のことは、セッションが続く時間を定義するIISの設定です。仮想ディレクトリ/ Webサイトのプロパティに移動し、[構成]をクリックすると、[オプション]タブでセッションタイムアウト期間が確認されます。有効にして、十分に高い値に設定します。

于 2009-08-12T12:50:58.637 に答える
0

チーム メンバーの 1 人の間違いであることが判明しました。彼は、サイトが負荷分散を備えた 4 つの物理マシンで分散されているにもかかわらず、セッションをインプロセスに設定していました。それが問題なのかどうかはわかりませんが、セッションをSQLサーバーに保存するように変更したところ、うまくいきました! この問題をさらに掘り下げ、さらに情報があれば報告します。みんなありがとう!

于 2009-09-06T11:33:34.680 に答える
0

セッションが IIS および web.config で有効になっていることを確認する必要があります。

また、アプリケーションの再起動時にログを記録する価値があります。アプリ全体がリセットされる原因となる何か他の問題が発生している可能性があります。

于 2009-08-12T12:45:26.170 に答える
0

これは、ページで一度発生しました。実行シーケンスで呼び出されたことに気付かなかった場所で Session.Abandon() を実行していたことがわかりました (ログインとメンバーシップ プロバイダーの使用方法に関連していました)。デバッグのヒントとして、すべての Session.Abandon() にブレークポイントを設定し、予期しないときに呼び出されないようにすることをお勧めします。

于 2009-08-12T12:46:16.747 に答える