Клиент отключен - PullRequest
       14

Клиент отключен

13 голосов
/ 11 июня 2009

Я часто получаю сообщение об отключении клиента. Я не использую балансировку нагрузки - только один сервер 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)

Ответы [ 3 ]

8 голосов
/ 18 марта 2011

Мы также получаем это исключение и получаем его полностью повторяемым способом. Это исключение выдается, когда ViewState стало "большим", и пользователь нажимает кнопку до того, как предыдущий запрос завершен ...

В нашем случае это происходит очень легко, потому что в посте используется ajax, поэтому браузер не перестает отвечать, пока ViewState отправляется на сервер. Нажатие на этот элемент управления вызывает исключение снова и снова.

2 голосов
/ 15 ноября 2011

Это также происходит, когда ваша страница позволяет конечному пользователю сделать несколько частичных обратных передач, не дожидаясь ответа. Это означает, что предположим, что таблица, в которой щелчок по строке выполняет частичную обратную передачу, показывает подробности этой строки. Теперь, если пользователь одна строка и, не дожидаясь подробностей, нажимает другую строку ... есть вероятность, что это исключение произойдет.

ASP.NET AJAX отменяет уже выполняющийся запрос при создании нового асинхронного запроса.

Однако, что остается непонятым, так это то, почему IIS позволяет такому оставленному запросу вообще доходить до ASP.NET.

1 голос
/ 11 июня 2009

Возможно, что пользователи отменяют пост-ответ, нажимая STOP или RELOAD в браузере Есть ли в вашем приложении несколько страниц, которые являются довольно тяжелыми, например, много просмотров, и есть ли у вас пользователи, которые имеют более медленные соединения, например коммутируемого

...