- PR -

ASP.NET StateServerモードでの大量データ取り扱いについて

1
投稿者投稿内容
新之助
会議室デビュー日: 2006/06/27
投稿数: 2
投稿日時: 2006-06-27 16:58
動作環境:Windows2003/IIS6.0 Framework1.1
ASP.NET1.1をStateServerモードで動作させています。

Datasetのデータをセッションに格納していますが、5千件を超えた辺りから
「セッション状態をシリアル化できません。セッション状態モードが 'StateServer' か 'SQLServer' の時は、シリアル化できないオブジェクトまたは MarshalByRef オブジェクトは許可されません」
と言ったシリアル化に失敗した様なエラーが発生し、System.OutOfMemoryExceptionが発生します。
少量のデータ件数ではエラーが発生しません。

Webconfigの[sessionState]に関連する[stateNetworkTimeout]や[timeout]を変更してみたのですが駄目でした。

本来、大量データをセッションに投入すべきでは無いとは思いますが、StateServerモードで運用する場合、実際にデータ容量制限等があるのでしょうか?
もしくは何処かのパラメータの設定漏れが影響しているのでしょうか?
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2006-06-27 18:02
引用:

Datasetのデータをセッションに格納していますが、5千件を超えた辺りから



そのDataSetをBinaryFormatterでシリアライズしたときのサイズはどれくらいになりますか?

http://www.atmarkit.co.jp/fdotnet/entwebapp/entwebapp06/entwebapp06_03.html
新之助
会議室デビュー日: 2006/06/27
投稿数: 2
投稿日時: 2006-06-27 20:19
>そのDataSetをBinaryFormatterでシリアライズしたときのサイズはどれくらいになりますか?

大体15MB台までは正常に動いています。16MBを超えた辺りからエラーが発生します。
Windows2003ではこの状況ですが、開発環境のXpでは20MBを超えてもエラーは出ません。
XPでは25Mbくらいまでは行けるようです。

ちなみにWindows2003でも5MB程度のセッションを20多重で稼動させても正常に動作しています。
このことからTimeOutも疑って見ましたが、Datasetをセッションに格納し始めて1,2秒程度で発生しています。

[ メッセージ編集済み 編集者: 新之助 編集日時 2006-06-27 20:33 ]

[ メッセージ編集済み 編集者: 新之助 編集日時 2006-06-27 20:34 ]
1

スキルアップ/キャリアアップ(JOB@IT)