Подтвердить что ты не робот

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

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

Ответ 1

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

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

Ответ 2

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

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

Однако Что остается непонятым, почему IIS разрешает такой заброшенный запрос вообще обращаться к ASP.NET.

Ответ 3

Возможно, что пользователи прервали отправку страницы после нажатия кнопки STOP или RELOAD в браузере. Имеет ли ваше приложение несколько страниц, которые довольно тяжелы, например. много viewstate, и у вас есть пользователи, которые находятся на более медленных соединениях, например. коммутируемый?