私が維持しているサイトの1つは、ViewState
(私のコードではありません)の使用に大きく依存しています。しかし、ViewState
が余分に膨れている特定のページでは、Safariは"Validation of viewstate MAC failed"
というエラーをスローします。ViewStateはSafariでのみ無効
これはSafariでのみ発生するようです。 Firefox、IE、Operaはすべて同じシナリオで正常に読み込まれます。
私が維持しているサイトの1つは、ViewState
(私のコードではありません)の使用に大きく依存しています。しかし、ViewState
が余分に膨れている特定のページでは、Safariは"Validation of viewstate MAC failed"
というエラーをスローします。ViewStateはSafariでのみ無効
これはSafariでのみ発生するようです。 Firefox、IE、Operaはすべて同じシナリオで正常に読み込まれます。
私はこのことについて少し研究してきましたが、サファリが完全な結果セットを返していない(それを切り取っている)ため、その原因が完全にわからないのです。
私は他の開発者と相談していて、チャンネル9で次のポストも見つけました。ポストバックの問題やページサイズを避けてSQLステートサービスを使用してビューステートを保存することをお勧めします。
これが最善の解決策のように見えるのか?
コールの私の最初のポートは、ページ上の要素を通過し、そのコントロールを参照することであろう:私は
を必要なときにロードするためのAJAX呼び出し限られたオーディエンスアプリケーションViewStateをセッション。
メモリにヒットすることはユーザーの数にとって重要ではないため、私にとっては効果的でしたが、かなり人気の高いサイトを実行している場合はこの方法をお勧めしません。ただし、セッションソリューションがSafariで動作する場合は、常にユーザーエージェントを検出して適切にファッジすることができます。
私はチャネル9のソリューションよりも、いくつかのホステッド環境では、Safariはアップレベルのブラウザとはみなされないことにも注意してください。いくつかのASP.Net機能を使用するには、アプリケーションのブラウズ・マップに追加する必要があります。
これは、ASPメニューコントロールを使用しているクライアントのサイトの頭痛の根本原因でした。