- PR -

リンクボタンの連打でエラーになってしまいました

1
投稿者投稿内容
cancan
会議室デビュー日: 2009/02/11
投稿数: 6
投稿日時: 2009-03-12 14:04
いつもお世話になります。
VS2005でWEB画面を作成しています。

画面遷移をしている途中で下記のようなエラーが発生してしまいました。
エラーが発生した時の動作ですが、
@HOME画面⇒処理画面Aに遷移
A処理画面Aで処理を行い、画面左上に用意した「処理画面Bへ」のリンクボタンをクリック
B処理画面Bの上部が少し表示し始めた時点で、処理画面Bの左上部に用意した「HOMEへ」のリンクボタンを2〜3回続けてクリック
※Bで続けてクリックしたらエラーとなってしまいました。

■下記がエラーメッセージです===================================================
アプリケーションでサーバー エラーが発生しました。

viewstate MAC の検証フィールドです。このアプリケーションが Web Farm またはクラスタによってホストされている場合、<machineKey> 構成が同一の validationKey および検証アルゴリズムを指定していることを確認してください。AutoGenerate をクラスタで使用することはできません。
説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。

例外の詳細: System.Web.HttpException: viewstate MAC の検証フィールドです。このアプリケーションが Web Farm またはクラスタによってホストされている場合、<machineKey> 構成が同一の validationKey および検証アルゴリズムを指定していることを確認してください。AutoGenerate をクラスタで使用することはできません。
============================================================================

このような連打を回避する方法はあるのでしょうか?

どなたか、お分かりになる方がいらっしゃいましたら、ご教授をお願い致します。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2009-03-13 07:53
出力されているメッセージは、読まれましたか?「クラスター構成なら云々」と書かれているとおり、サーバーの構成が関係してきます。アプリケーションの設定も含めて、構成をお知らせください。

表面的なエラーの原因は、ViewState が有効で、ポストバックされた ViewState が不正であることです。
例えば、ページの読み込みが完了しておらず、ViewState のフィールドが不完全な時にポストバックしたというような場合に発生することが考えられます。レンダリングされる順番からして、考えにくいけど。
ネットワーク トラフィックを監視するなど、どの様なデータが流れているか、調べてみて下さい。
cancan
会議室デビュー日: 2009/02/11
投稿数: 6
投稿日時: 2009-03-13 13:49
Jittaさん
貴重なアドバイスをありがとうございました。

「viewstate MAC の検証フィールド」、「machineKey」、「AutoGenerate 」等々のキーワードで色々調べてみました。

恥ずかしながら(知らなかったこととは言いながら)、machine.configは定義しておらずまた、web.configにも<machineKey>構成を入れていませんでした。

Microsoftに説明がありました内容に基いてフォーム認証用のキーを作成し対処してみます。
http://support.microsoft.com/kb/313091/JA/

また不明な点が出てきましたら、またアドバイスを頂けると助かります。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2009-03-13 18:32
え〜っと、つまり、「クラスター構成でした」ということでしょうか?
短時間に何度もクリックしたから、別のサーバーに渡され、エラーになったと?
1

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