3

エラー
Error Message : The client disconnected. が表示されます。
エラー ソース: System.Web
Stack Treace : System.Web.UI.ViewStateException: 無効なビューステート ...

Windows IIS 7.5 フレームワーク 4.0 で実行されている単純な Web アプリケーションがあります。load bilancer はありません。flowplayer
jquery ツールを使用して、オーバーレイでいくつかのページを開いています。

以前は、ランディング ページでビューステートを使用してページ全体を開いていました。
例えば

$("a[rel]").length && $("a[rel]").live("click", function (a) {
        var b = $(this).overlay({
            mask: "gray",
            effect: "apple",
            closeOnClick: !1,
            closeOnEsc: !1,
            fixed: !1,
            top: 0,
            onBeforeLoad: function () {
                var a = this.getOverlay().find(".contentWrap"),
                    b = this.getOverlay().find(".contentWrap_Request"),
                    d = this.getOverlay().find(".contentWrap_AddLead");
                a.html("");
                b.html("");
                d.html("");
                a.load(this.getTrigger().attr("href"));
                b.load(this.getTrigger().attr("href"));
            }...

読み込んでいたページのビューステートが問題を引き起こしていると思いました。そこで、コードを次のように変更しました

a.load(this.getTrigger().attr("href") + " .ajaxDiv");
b.load(this.getTrigger().attr("href") + " .ajaxDiv");

今、私はページ全体を開いていません。
オーバーレイで開いているページのビュー状態を回避するために、ページの事前定義 div のみをロードします。

インターネットで検索したところ、マシンキーの指定などの提案が見つかりました。これを web.config ファイルに入れました。

 <pages enableViewStateMac="true" viewStateEncryptionMode="Always"/>
 <machineKey validationKey="...." decryptionKey="..." validation="SHA1" decryption="AES" /> 
 <authentication mode="Forms" >
        <forms requireSSL="true" protection="All" timeout="720" defaultUrl="...." loginUrl="Default.aspx" >
        </forms>
    </authentication>

しかし、それでも上記のエラーが発生します。ページ読み込みイベントで HttpResponse.IsClientConnected を確認

することを提案するブログを見たことがあり ます。このメソッドを使用する必要があります。私のアプリケーションのトラフィックはそれほど多くはありません。1 日 (24 時間) あたり約 7 ~ 9,000 です。そのため、アプリケーション プールのリサイクルには何らかの理由がある可能性があります。

Stack Overflowの記事も見ましたが、うまくいきませんでした。
また、私のアプリケーションが実行されているのと同じアプリケーション プールで 4 つのアプリケーションが実行されていることを追加したいと思います。

4

0 に答える 0