2009-06-10 278 views
13

我经常收到客户端断开连接的消息。我不使用负载平衡 - 只有一台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) 
+0

FWIW,貌似有一个类似的问题已经: http://stackoverflow.com/questions/809413/what-might-be-cause-thethe-client-disconnected-asp-net-exception – 2009-06-11 00:51:38

+1

@ ChrisW.Rea是的,但是这个指定了一个单独的IIS服务器,其中另一个特别提到了负载均衡。我正在寻找的答案是在这个问题上,而不是其他问题。 – Michael 2013-12-13 16:38:55

回答

1

这有可能是用户中止通过点击浏览器停止或重新加载页面后回。您的应用程序是否有一些相当重的页面,例如很多视图状态,并且您是否有用户连接速度较慢,例如拨号?

+0

这不是正在发生的事情。所有本地连接都是100MB/1GB,这发生在许多不同的页面上。我们确实使用了很多视图状态,并没有有效的解决方法。这个问题似乎几乎是随机发生的。 – 2009-06-11 15:03:03

8

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

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

2

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

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

但是剩下的ununderstood是为什么IIS允许这样放弃了请求到达ASP.NET所有..