Iis 客户端断开连接
我经常收到客户断开连接的消息。我不使用负载平衡-只使用单个IIS服务器。我需要知道这是什么原因,以及如何修复它 以下是异常信息:Iis 客户端断开连接,iis,disconnected-session,Iis,Disconnected Session,我经常收到客户断开连接的消息。我不使用负载平衡-只使用单个IIS服务器。我需要知道这是什么原因,以及如何修复它 以下是异常信息: Type: System.Web.HttpException Message: The client disconnected. Exception Data: Source: System.Web TargetSite: Void ThrowError(System.Exception, System.String, System.String, Boole
Type: System.Web.HttpException
Message: The client disconnected.
Exception Data:
Source: System.Web
TargetSite: Void ThrowError(System.Exception, System.String, System.String, Boolean)
StackTrace:
at System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError)
at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)
at System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState)
at System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState)
at System.Web.UI.HiddenFieldPageStatePersister.Load()
at System.Web.UI.Page.LoadPageStateFromPersistenceMedium()
at System.Web.UI.Page.LoadAllState()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
用户在浏览器中单击“停止”或“重新加载”可能会中止页面回发。您的应用程序是否有一些页面很重,例如大量的viewstate,您是否有连接速度较慢的用户,例如拨号?我们也会遇到此异常,并且会以完全可重复的方式得到它。当
ViewState
变为“大”并且用户在上一个请求完成之前单击按钮时,会引发此异常
在我们的例子中,这种情况很容易发生,因为回发使用的是ajax,所以当
ViewState
被发送到服务器时,浏览器不会停止响应。反复单击此控件会导致异常。当您的页面允许最终用户在不等待响应的情况下进行多个部分回发时,也会发生这种情况。也就是说,假设在一个表中,单击一行进行部分回发,并向他显示该行的详细信息。现在,如果用户在不等待详细信息的情况下单击一行,则单击另一行。。。有可能出现这种例外情况
当发出新的异步请求时,ASP.NET AJAX将放弃已经执行的请求
然而,仍然无法理解的是,为什么IIS允许这种被放弃的请求访问ASP.NET。FWIW,看起来已经有一个类似的问题:@ChrisW.Rea是的,但这一个指定了一个IIS服务器,另一个特别提到负载平衡。我想要的答案是关于这个问题,而不是另一个问题。这不是正在发生的事情。所有的本地连接都是100MB/1GB,这发生在许多不同的页面上。我们确实使用了很多viewstate,但是没有有效的方法来解决这个问题。这个问题似乎几乎是随机出现的。您实际需要什么用例来阻止此错误的发生?这解释了为什么会发生这种情况。那么,如果客户需求与您所说的一样,如何解决此类问题。或者我们可以忽略此问题?有两种方法可以减少ViewState的影响。一种方法是创建自己的viewstate提供程序并停止通过网络发送。另一种方法是禁用它,并在没有它的情况下使页面功能正常。最激进的方法,也是我们一直在走的道路,就是将页面移植到MVC。