2008-08-04 25 views
11

私が維持しているサイトの1つは、ViewState(私のコードではありません)の使用に大きく依存しています。しかし、ViewStateが余分に膨れている特定のページでは、Safariは"Validation of viewstate MAC failed"というエラーをスローします。ViewStateはSafariでのみ無効

これはSafariでのみ発生するようです。 Firefox、IE、Operaはすべて同じシナリオで正常に読み込まれます。

答えて

1

私はこのことについて少し研究してきましたが、サファリが完全な結果セットを返していない(それを切り取っている)ため、その原因が完全にわからないのです。

私は他の開発者と相談していて、チャンネル9で次のポストも見つけました。ポストバックの問題やページサイズを避けてSQLステートサービスを使用してビューステートを保存することをお勧めします。

http://channel9.msdn.com/forums/TechOff/250549-ASPNET-ViewState-flawed-architecture/?CommentID=270477#263702

これが最善の解決策のように見えるのか?

コールの私の最初のポートは、ページ上の要素を通過し、そのコントロールを参照することであろう
3

:私は

  • オフにViewStateを切り替えると、まだ動作します

    1. は、ページの外と内に移動させることができます私は、Webに面したサイトで、このソリューションを使用したことがない - - しかし、私は大規模なViewStatesをなくしたいと思っていた過去の免責事項だということ、そしてここで失敗

    を必要なときにロードするためのAJAX呼び出し限られたオーディエンスアプリケーションViewStateをセッション。

    メモリにヒットすることはユーザーの数にとって重要ではないため、私にとっては効果的でしたが、かなり人気の高いサイトを実行している場合はこの方法をお勧めしません。ただし、セッションソリューションがSafariで動作する場合は、常にユーザーエージェントを検出して適切にファッジすることができます。

  • 4

    私はチャネル9のソリューションよりも、いくつかのホステッド環境では、Safariはアップレベルのブラウザとはみなされないことにも注意してください。いくつかのASP.Net機能を使用するには、アプリケーションのブラウズ・マップに追加する必要があります。

    これは、ASPメニューコントロールを使用しているクライアントのサイトの頭痛の根本原因でした。

    関連する問題