Приложение написано в ASP .NET 4.0, размещенном в IIS 7.5 на компьютере под управлением Windows Server 2008 R2. Пул приложений использует режим Integrated Managed Pipline Mode.
Исключение, приведенное ниже, генерируется на нескольких разных страницах, которые не имеют ничего очевидного общего. Я не могу воспроизвести исключение самостоятельно, но это произошло 10 раз на прошлой неделе в производственной среде.
Из трассировки стека я вижу, что исключение выдается методом "HttpRequest.GetEntireRawContent", поэтому мне было интересно, если что-то не так с запросом, например, он слишком длинный или содержит недопустимый символ.
Просто чтобы прояснить, это исключение не , созданное из написанного мной кода, оно находится внутри пространства имен System.Web. Так что я не могу добавить попытку ... поймать вокруг себя.
Буду признателен за любые идеи относительно причины исключения или устранения неполадок, чтобы узнать больше информации.
Exception: System.Web.HttpUnhandledException (0x80004005): Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> System.Web.HttpException (0x80004005): An error occurred while communicating with the remote host. The error code is 0x80070001. ---> System.Runtime.InteropServices.COMException (0x80070001): Incorrect function. (Exception from HRESULT: 0x80070001)
at System.Web.Hosting.IIS7WorkerRequest.RaiseCommunicationError(Int32 result, Boolean throwOnDisconnect)
at System.Web.Hosting.IIS7WorkerRequest.ReadEntityCoreSync(Byte[] buffer, Int32 offset, Int32 size)
at System.Web.HttpRequest.GetEntireRawContent()
at System.Web.HttpRequest.FillInFormCollection()
at System.Web.HttpRequest.get_Form()
at System.Web.HttpRequest.get_HasForm()
at System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull)
at System.Web.UI.Page.DeterminePostBackMode()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at System.Web.UI.Page.HandleError(Exception e)
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.ProcessRequest(HttpContext context)
at ASP.report_openinghours_aspx.ProcessRequest(HttpContext context)
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
EDIT:
Как указал lukiffer, здесь есть похожий вопрос: stackoverflow.com / questions / 7825127 / Предлагаемое исправление состоит в том, чтобы отключить разгрузку TCP, как я понимаю, что разгрузка TCP защищает веб-сервер из-за большой сложности TCP. Поэтому его отключение потребляет много циклов ЦП, что приводит к замедлению работы веб-серверов, что, очевидно, нежелательно.
Я также не понимаю, почему разгрузка TCP вызовет IIS для исключения.