14

我经常收到客户端断开连接的消息。我不使用负载平衡 - 只有一个 IIS 服务器。我需要知道是什么原因造成的以及如何解决它。

这是异常信息:

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)
4

3 回答 3

9

我们也得到了这个异常,并且我们以完全可重复的方式得到它。ViewState当已变为“大”并且用户在前一个请求完成之前单击按钮时会引发此异常...

在我们的例子中,这很容易发生,因为回发使用的是 ajax,所以浏览器ViewState在发送到服务器时不会停止响应。单击此控件会一遍又一遍地导致异常。

于 2011-03-18T12:00:03.170 回答
4

当您的页面允许最终用户在不等待响应的情况下进行多次部分回发时,也会发生这种情况。意思是,假设一个表格,点击一行会执行部分回发,并向他显示该行的详细信息。现在,如果用户在一行并且不等待详细信息,单击另一行......可能会发生此异常。

当发出新的异步请求时,ASP.NET AJAX 会放弃已经执行的请求。

然而,仍然不明白的是,为什么 IIS 完全允许这种被放弃的请求到达 ASP.NET..

于 2011-11-15T15:30:17.420 回答
1

用户可能会通过在浏览器中单击停止或重新加载来中止页面回发。您的应用程序是否有一些非常重的页面,例如大量的视图状态,您是否有连接速度较慢的用户,例如拨号?

于 2009-06-11T00:45:25.860 回答