2012-01-10 9 views
0

セッションデータに非常に奇妙な問題があります。 InProcセッションモードを使用しているときに問題が表示されません。
これは、それが起こるかです:
1. HttpContext.Current.Session["testparam"] = "string value";
2.私はPage.Unloadイベントでこのデータを確認してください。データはまだそこにあります。
3.別のリクエストが開始されたら、私はそれを削除しなかったが、Page.OnInitにデータをフェッチできません。SQLServerセッションモードを使用するとセッションデータが消える

その他の情報:
ログにはシリアル化エラーはありません。
セッションデータベースは、procedureを使用して作成されます。
IISとASP.NET開発サーバーの両方にエラーが表示されます。
SQLServerモードとAppFabric分散キャッシュモードの両方を試しました。

私はアイデアがないので、助けてください。

+0

あなたは、HttpContext.Current.Sessionを割り当てる場所のコードだけでなく、エラーを投稿することもできます。また、OnloadとonInitコードが役に立つかもしれません.Googleは、Global.asaxページ..のようなものを持っていますか? – MethodMan

+0

エラーはありません。セッション変数は2番目のリクエストでnullに設定されています(セッションのEntriesTableを調べました)。私はglobal.asaxを持っていますが、セッション変数の値は設定しません。 – Filip

+0

私の悪いです。方法はわかりませんが、出力ウィンドウの最後に明らかなシリアライズ例外がありませんでした。コールバック中に例外が発生したため、アプリケーションが動作し続けていたと思います。 – Filip

答えて

1

EnableSessionStateが2番目のページのページディレクティブでfalseに設定されていることを確認します。 falseに設定されている場合、値はページロード時にSQLからフェッチされません。一方、これはInProcモードでは発生しません。

+0

どのページでもEnableSessionStateは使用しません。 – Filip

関連する問題