Мое приложение .NET 3.5 спорадически выделяет следующее исключение. Исключение System.Web:
Клиент отключен
Любые идеи, почему происходит это исключение? Мое приложение работает на сбалансированном нагрузке сервере Windows Server 2003 IIS 6.0.
Мое приложение .NET 3.5 спорадически выделяет следующее исключение. Исключение System.Web:
Клиент отключен
Любые идеи, почему происходит это исключение? Мое приложение работает на сбалансированном нагрузке сервере Windows Server 2003 IIS 6.0.
Теперь домен vbdork.net перестает работать. При поиске этой ошибки я нашел несколько ссылок на эту статью. Поэтому я нашел версию кеширования в Google и теперь отправляю ее здесь для справки. Исходный URL: http://vbdork.net/post/2009/02/10/The-client-disconnected.aspx
Получено сообщение Клиент отключен.
Вероятно, вы случайно получите это сообщение об ошибке, если находитесь в веб-ферме, и у вас есть страница, на которой пользователь может сделать несколько выборов, как правило, это происходит в этом сценарии:
Пользователь выбирает раскрывающийся список, в котором есть событие для обратной передачи, но пользователь делает это снова, прежде чем запрос будет отправлен обратно пользователю, теперь пользователь создает второе событие, которое запускается на другом веб-сервере, предыдущий веб-сервер пытается вернуть результаты старого события пользователю, но пользователя больше нет, потому что пользователь теперь находится на другом веб-сервере.
Пользователь никогда не увидит ошибку, но если вы поймаете ошибки и по электронной почте/зарегистрируете их, вы увидите их, как показано ниже, и полностью разочарованы. Не беспокойтесь об этом, просто проигнорируйте это, это даже не проблема, если вы поймаете эту ошибку, ничего не пойдет не так.
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)
Возможно, потому что "клиент отключен"...
Закрытый браузер, перейдя на новую страницу, устал ждать загрузки приложения...
Всю серьезность, посмотрите эту страницу для получения большой информации об этой проблеме.
В общем, это происходит потому, что браузер инициирует новый запрос, который отскакивает на второй сервер, в то время как первый сервер обрабатывает исходный запрос. Его совет состоит в том, чтобы просто игнорировать его.
Моим советом было бы выяснить, почему ваш балансировщик нагрузки не удерживает клиента на одном и том же сервере при последующих запросах; также называемые "липкими" сеансами.
Если вы используете компоненты Telerik, избавитесь от модуля RadCompression.
Также проверьте этот ответ по аналогичному вопросу. В этом случае нет веб-фермы.
Это исключение возникает, когда
ViewState
становится "большим", и пользователь нажимает кнопку до завершения предыдущего запроса. [...] Это происходит очень легко, потому что post back использует ajax, поэтому браузер не перестает отвечать, покаViewState
отправляется на сервер.
Кредит Рассел Кларву
попытайтесь исправить, разбивая область просмотра на несколько полей, используя maxPageStateFieldLength в файле web.config:
<pages enableSessionState="true" enableViewState="true" enableViewStateMac="true" validateRequest="false" maxPageStateFieldLength="20">
Другие возможные причины: Вы используете элементы управления, которые не поддерживают Ajax в реальности. Предполагается, что Ajax может обрабатывать асинхронные запросы, но некоторые элементы управления не работают, например, TreeView (ajax). (В ожидании интернет-полиции telerik, как обычно, подвергают цензуре эту плохую рекламу.)