我的.NET 3.5应用程序偶尔抛出以下异常System.Web异常:
客户端已断开连接
为什么会发生这种异常?我的应用程序在负载均衡的Windows Server 2003 IIS 6.0服务器上运行.
vbdork.net域似乎现在已经不存在了.在搜索此错误时,我发现了几篇对本文的引用.所以我发现了谷歌的缓存版本,我现在将其发布在这里以供参考.原始网址为:http: //vbdork.net/post/2009/02/10/The-client-disconnected.aspx
您收到消息客户端已断开连接.
如果您在Web场中并且有一个用户可以进行多项选择的页面,您可能偶尔会收到此错误消息,通常在这种情况下会发生:
用户选择在回发时具有事件的下拉列表框,但是用户在将请求发送回用户之前再次执行此操作,用户现在正在创建在另一个Web服务器上触发的第二个事件,前一个webserver尝试将旧事件的结果返回给用户,但用户不再存在,因为用户现在位于其他Web服务器上.
用户永远不会看到错误,但是如果您正在捕获错误并通过电子邮件发送/记录它们,您将看到它们如下所示并且完全受挫.不要担心它,只要忽略它甚至不是问题,只要你捕获这种错误就不会出错.
Type : System.Web.HttpException, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Message : The client disconnected. Source : System.Web Help link : ErrorCode : -2147467259 Data : System.Collections.ListDictionaryInternal TargetSite : Void ThrowError(System.Exception, System.String, System.String, Boolean) Stack Trace : at System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError) 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) at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest() at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) at System.Web.UI.Page.ProcessRequest(HttpContext context) at ASP.src_rptprefs_chainhierarchy_aspx.ProcessRequest(HttpContext context) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) Inner Exception --------------- Type : System.Web.UI.ViewStateException, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Message : Invalid viewstate. Client IP: 10.21.4.8 Port: 46784 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.1; .NET CLR 1.1.4322; MS-RTC LM 8)
也许是因为"客户端断开连接"......
关闭浏览器,导航到新页面,厌倦了等待应用程序加载...
一目了然,请查看此页面以获取有关该问题的大量信息.
总而言之,这是因为浏览器正在启动一个新请求,该请求在第一个服务器处理原始请求时跳转到第二个服务器.他的建议就是忽略它.
我的建议是弄清楚为什么你的负载均衡器没有在后续请求中将客户端固定到同一个服务器上; 也称为"粘性"会话.