1

有名な「ビューステートの読み込みに失敗しました」という報告が散発的に寄せられています。動的に読み込まれるコントロールを使用していないため、追跡するのは非常に困難です。そしてそれは散発的です。

「viewstate の読み込みに失敗しました。viewstate が読み込まれているコントロール ツリーは、前の要求で viewstate を保存するために使用されたコントロール ツリーと一致する必要があります。たとえば、コントロールを動的に追加する場合、コントロールはポストバック中に追加されます」

これには他にどのような理由がありますか?アプリケーション プールのリサイクルは記録されていません。

4

1 に答える 1

0

いくつかの可能性:

ページでは、ページがクライアントに送信されてから、一部のコントロールが追加または削除されています。

Webファームでは、ページは暗号化のために異なる「マシンコード」を持つ別のサーバーによって処理される場合があります。正確な構文は思い出せませんが、web.configですべて同じになるように設定できます。

ページ自体がサーバー上で編集された後、「古いバージョン」がポストバックされた場合、これを確認しました。しかし、それが起こったかどうかはご存知のようです。

また、ページが「実際に」存在していた時間によっては、サーバーが更新されたり、送信されてからポストバックされるまでの間に再起動したりすると、マシンコードが変更される可能性があります。繰り返しますが、これを防ぐためにweb.configで設定してください。

ああ-もう1つ-一部のブラウザはフォームフィールドを切り捨てるので、ビューステートがたくさんある場合は、ポストバック時にブラウザによって切り捨てられる可能性があります。それはそれを台無しにするでしょう。

于 2011-04-14T17:35:53.607 に答える