ASP. NET 4.0 Web App выдает сообщение «Неправильная функция. (Исключение из HRESULT: 0x80070001)»

Приложение написано на ASP .NET 4.0 и размещено в IIS 7.5 на компьютере под управлением Windows Server 2008 R2. Пул приложений использует режим интегрированного управляемого конвейера.

Ниже приведено исключение. выбрасывается, когда на нескольких разных страницах не отображаются Есть что-нибудь очевидное общего. Я не могу воспроизвести исключение самостоятельно, но на прошлой неделе это произошло 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)

РЕДАКТИРОВАТЬ:

Как указал Лукиффер, здесь есть похожий вопрос: stackoverflow.com/questions/7825127/ Предлагаемое исправление - отключить разгрузку TCP, как я понимаю что разгрузка TCP защищает веб-сервер от множества сложных TCP. Поэтому его отключение потребует много циклов ЦП и замедлит работу веб-серверов, что, очевидно, нежелательно.

Я также не понимаю, почему разгрузка TCP заставляет IIS генерировать исключение.

8
задан Community 23 May 2017 в 11:33
поделиться