2009-03-10 20 views
3

私はasp.netアプリケーションのための私のmasterpage上に生きているiframeを生きている(iframeがページを叩く、defibrillator.aspx、セッションを生き残らせるために数分ごとに生き残る)。これはほとんどの場合動作しますが、除細動器ページのページ読み込み中にセッション変数がnullを返すことがよくあります。最初は、何らかの理由でセッションがサーバーによってタイムアウトしていると思ったので、global.asaxのSession_Endイベントにいくつかログを記録しましたが、決してヒットしませんでした。ASP.NET WebForms - セッション変数Null

何が原因でセッションが失われる可能性がありますか。

+0

あなたのセッション状態モードとは何ですか? InProc? –

答えて

2

セッションが失われる原因はたくさんあります。 AppPoolリサイクル、iisreset、クライアントはセッションクッキーなどを失う可能性があります。それ以上のことを知らなければ、何が問題なのかを知ることは困難です。

セッションが非常に重要で、ワーカープロセスが眠らないようにアプリケーションをポーリングする場合は、おそらくpersisting your session state to SQL Serverを調べるべきです。

0

選択された持続メカニズムがInProcである場合、それは多くのものによって引き起こされる可能性があります。実稼働環境では完全に推奨されません。

1

私はこの同じ種類の問題を抱えていました。ショッピングカートの状態をセッションに保存しましたが、ランダムに代わりにnullを返すようにしました。

セッション損失の問題はまた、誤設定のアプリケーションプールから なります:私は、私は私のために働くようだベルトランリロイのブログ、上の答えを見つけたと思います。例えば 、 サイトが稼働しているアプリケーションプールが( を設定することにより、労働者の最大数が複数に を処理) WebファームまたはWebガーデンとして構成されている場合は、あなたが使用して いないのであればセッションサービスまたはSQL セッションの場合、着信要求は というワーカーの1つに予期せず移動し、それ以外の場合はセッションが作成されています。 この問題の解決方法は、 ウェブガーデンを使用しない場合は、 がパフォーマンスを向上させる必要があります。または、アウトプロセスセッション を プロバイダーに1つ使用してください。

Blog

関連する問題