3

セッションを保存するために ASP.Net State サービスを使用している Web ファームで実行されている ASP.Net 2.0 Web アプリケーションがあります。

サービスで断続的に問題が発生しており、machine.config の machineKey など、いくつかの変更を行いました。

私の実際の質問は、国家サービス サービスの監視に関するものです。サービスをホストするサーバー上で 4 つの使用可能なパフォーマンス カウンターがすべて実行されていますが、まだセッション タイムアウトは 1 回も発生していません。また、アクティブなセッションの数が一定期間にわたってゆっくりと増加していることも確認していますが、減少することはありません.

状態サービスは、セッションがタイムアウトしたことを認識しますか? 手動で行うべきことはありますか?

編集:状態サービスをあきらめて、SQL サーバー セッションを使用しました。

以下の質問に答えると、サービスが停止するまでセッションは永遠に続くようであり、oen スレッドが状態サーバーにリンクされているかどうかは非常に疑わしいです。結局のところ、これはかなり基本的な Web アプリです。

私が行っている読書から、他の多くの人々が同様のことを経験しているように見えますが、飛び交う回答には一般的な常識と知識の欠如があるようです.

MS には、このトピックに関するドキュメントがほとんどないようです。

4

4 に答える 4

0

私はこれがモッドダウンされると確信していますが、私はそれを言わなければなりません.

状態サーバーに問題がある場合は、Web アプリケーションのどこかにエラーがある可能性があります。上記のチャールズのコメントは、チェックを開始するのに適した場所のように思えますが、どこかにライフサイクルの問題があります。

コードに戻って、想定を確認してください。新しいコンピューターを用意して、Web サイトにアクセスし (セッションを作成)、1 時間放置します。セッションがまだ有効な場合は、何か問題があります。現在のセッションの経過時間を報告する 1 つのページだけを持つ新しい Web アプリケーションを作成し、同じことを試してください。1 時間 (デフォルトは 20 分) 後、セッションは有効ではなくなります。これで、期待どおりに動作しているシステムとそうでないシステムがあり、どちらも同じセッション サーバーを使用しているため、それを問題として除外し、コード/構成を調べて、どこでそれを維持できるかを確認できます (またはタイムアウトを防ぐ)。

ちなみに、これは「有効な」セッション構成です。このように見えない場合は、問題が見つかった可能性があります。

<sessionState 
   mode="StateServer" 
   stateConnectionString="tcpip=10.1.1.1:55455" 
   cookieless="false" 
   timeout="20" />

また、タイムアウトを長くするために web.config を machine.config でオーバーライドしていないことを確認してください。

于 2009-04-02T17:26:44.750 に答える
0

セッションにヒットし、知らないうちにそれを維持している可能性のあるものはありますか? バックグラウンドで作業を行ってセッションを保持しているスレッドが生成されていますか? 私の経験によると、タイムアウトはWeb構成ファイルに設定されており、そこから魔法ではありません。

于 2009-02-19T06:29:01.750 に答える