エラー
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 つのアプリケーションが実行されていることを追加したいと思います。