- PR -

【ASP.NET】連続して発生させたイベントのキャッシュ。

1
投稿者投稿内容
Lin
会議室デビュー日: 2002/12/09
投稿数: 5
投稿日時: 2003-06-27 00:58
いつも皆様の投稿でお世話になっています。今回はどうにもいかなくなりましたので、
スレを立てさせていただきました。

現在、AutoPostBackさせるasp:DropDownListと最新のDBレコードを取得するための
asp:Buttonコントロールを複数配置し、毎回20KBほどのViewStateをもつwebFormを
作成しているのですが、負荷テストで5台ほどのクライアントマシンから、ひたすら
ButtonをクリックしつづけPostBackを繰り返し行うと、簡単にサーバーの動作が
正常でなくなるのです。(作成したSession変数がNothingになる、DBのコネクションが
サーバーサイドの処理を実行途中、急に切断されるなど)
その時は大抵、テストを行っているクライアントすべての動作が同一のエラーになり
ます。

Buttonの連続クリックを防ぐためAttributeを使用し連続クリックを防ごうとも
したのですが、なかなかうまくいきません。

そこでMSDNを見ると「イベント処理中に新たなイベントをトリップした場合は、最初に
発行されたイベントの処理が終了するまでキャッシュされ、処理終了後に次に発行された
イベントが処理されます」とあったのですが(すみませんが手元にURLがないんで参照
できません・・・)この、キャッシュとはどこに溜め込まれるのでしょうか?
もしかしたらキャッシュを最初に発行されたイベント処理の終了時に破棄することで
連続クリックからの負担がなくなるのではと思ったのですが・・・

環境は IIS5.1 + Windows2000Server + .NetFramework1.1 です。
DBはOracle8iです。

特に方法にはこだわっておりませんので、連続送信されたイベントの破棄の方法、もしくは
防ぐ方法がありましたらどうかご教授ください。

よろしくお願いします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-06-27 16:04
 MSDNで、フィルタ条件を「インターネット開発ドキュメント」にし、検索する文字列を「"イベント" NEAR "キャッシュ"」とすると、TypeDescripterというクラスがヒットしました。このクラスのメソッドに、『プロパティとイベントをキャッシュから消去します。』というのがあります。

##未確認情報ですので、取り扱い注意##
Lin
会議室デビュー日: 2002/12/09
投稿数: 5
投稿日時: 2003-06-27 21:07
>>Jittaさん
今日も慣れないASP.NETでの開発に追われ返信が遅くなりました...
「TypeDescripterクラス」ですね、貴重なご意見本当にありがとうございます!
これから利用方法を調べて試してみようと思います。

Jittaさんも使われていないようですので、テスト結果を後ほど書かせていただきます。
##これが思い通りにいけば悪戯な連続PostBackに悩まされずにすむかも!
1

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