私たちのWebサーバの1つに.net 4.5 Frameworkがインストールされています。当社のアプリケーションは、.net 4.0を対象としており、ロードバランサの背後にある複数のサーバから実行されます。我々はいくつかのPOSTのために、次のエラーメッセージが表示されますインストールした後.NET 4.5 Frameworkがロードバランサの背後にある1台のサーバにインストールされていると、ASP.NET EventValidationが失敗する
は
ERROR_NAME = System.ArgumentExceptionの error_messageは=無効なポストバックまたはコールバック引数を要求します。イベントの検証は、in構成または<%@ Page EnableEventValidation = "true"%>を使用して有効になっています。セキュリティ上の理由から、この機能はポストバックまたはコールバックイベントの引数が元々レンダリングされたサーバーコントロールから発生することを確認します。データが有効で予期されている場合は、検証のためにポストバックまたはコールバックデータを登録するためにClientScriptManager.RegisterForEventValidationメソッドを使用します。 error_details =ソース:System.Web
要求の本文の__EVENTVALIDATION値は、.net 4.5のインストールでサーバーから要求されたときとは異なります。 MSDNによると、.net 4.5の暗号化の変更には構成のオプトインが使用されているため、デフォルトでは下位互換性があるはずです。
イベントの有効性を無効にしないで設定を変更しても、.net 4.0だけが動作するように_netがインストールされているマシンで_EVENTVALIDATIONが同じ動作をする必要がありますか?
このサーバーだけで単独で実行している場合はこれですか?ロードバランサに永続性が有効になっていますか?このサーバが、4.5を持たない別のWebサーバからのポストバックを取得している可能性はありますか? –
これは独立した方法で正常に動作します。私は、最初のリクエストが.net 4.5なしのサーバからのもので、投稿が.net 4.5がインストールされたサーバに転送するときに問題が発生すると思います。 – chrisk
マシンのキーなどを変更しなかったかどうかを確認してください。その他の問題はなく、残りのサーバーにロールアウトします。その間、ロードバランサに永続性を実装し、すべてのパッチを適用できるようになるまでサーバー間の呼び出しを排除します。ハイブリッドモードはうまく動作しないようです。 –