3

我收到一条
错误消息:客户端已断开连接。
错误来源:System.Web
Stack Treace:System.Web.UI.ViewStateException:无效的视图状态...

我有一个在 Windows IIS 7.5 框架 4.0 上运行的简单 Web 应用程序。并且没有负载平衡器
我正在使用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 我应该使用这种方法吗?我的应用程序的流量并不算多,每天(24 小时)大约 7 到 9 千。那么应用程序池回收是否有任何原因。

我也看过 Stack Overflow的文章,但没有运气。
另外我想补充一点,4 个应用程序正在运行我的应用程序的同一个应用程序池中运行。

4

0 回答 0