私は本当にこれをどこから始めるべきか分かりません。私は得ています:
`Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request. For example, when adding controls dynamically, the controls added during a post-back must match the type and position of the controls added during the initial request.`
ウェブサイトを新しいサーバーに移動した後。私の他のサーバーでもまったく同じコードが機能します。フォームの 1 つを送信すると発生します (ただし、すべてのフォーム送信で発生するわけではありません)。
これを引き起こす可能性のあるアイデアはありますか?
使用: ASP.NET 2。
編集:実行時にいくつかのユーザーコントロールをプレースホルダーに動的に追加していますが、この同じコードは他のサーバーで正常に動作しています。新しいものを追加する前に、プレースホルダーのコントロールをクリアしようとしましたが (それについての投稿を見たので)、役に立ちませんでした。
EDIT2:ポストバックが失敗しているようです。ボタンのonClickコードにも入っていないので、何かが間違いなく厄介です..例外を試してキャッチすると、すべてのコントロールがまだ正常に追加されているようです...動的UCをEnableViewState = falseに設定すると、これが解決します特定のエラー。
EDIT3: OK、私は何が起こっているのかを把握していると思います. 何らかの理由で、古いサーバーではフォーム アクションが表示されdefault.aspx?action=amend
ますが、新しいサーバーでは表示amend.html?action=amend
されているため、IIS で書き換えモジュールが台無しになっていると思います。これは、アクションが2回発生しているため、コントロールの追加の問題も説明します(私は思います)。Rewrite モジュールを調べて、何か問題があるかどうかを確認してから、返信します。