- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ASP.net 教えてください!!(初心者))
ASP.netでのセッション情報が消える問題の回避方法は?
このQ&Aのポイント
- ASP.net(C#)でシステムを構築中に、プログラムでサーバー上のフォルダを削除するとSession情報が消えるという問題が発生しました。Web.configに<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" stateNetworkTimeout="10" />を追加するとセッション状態をシリアル化できませんというエラーメッセージが表示されます。
- セッション状態をシリアル化できないという制限は、'StateServer'や'SQLServer'モードの場合に適用されます。同様の制限は'Custom'モードでも適用されます。
- この問題を回避するためには、カスタムセッション状態ストアを使用する必要があります。カスタムセッション状態ストアを使用すると、シリアル化されないオブジェクトやMarshalByRefオブジェクトも利用できます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#259269
回答No.1
お礼
edp3142さん。 お返事遅れて大変申し訳ございませんでした。 >WebApplication 仮想フォルダ配下のフォルダを消してしまうということでしょうか。そもそもの作りがよろしくないように思います。一般的には、WebApplication の仮想フォルダ外の別の場所を処理対象とするべきです。 説明が足りず申し訳ありません。 上記で削除しているフォルダは仮想フォルダとは全く別のフォルダです。 >Session 変数に、シリアライズできないオブジェクトを入れている場合に発生します。対処方法としてはそういうオブジェクトを Session 変数に入れないようにします。 おっしゃるとおりのようで、Sessionに入れる情報は独自クラスで生成したDataSetでした。 プログラムを変更することで回避できました。 ありがとうございました。