我收到一条
错误消息:客户端已断开连接。
错误来源: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 个应用程序正在运行我的应用程序的同一个应用程序池中运行。