ASP.NET 4.0 Web App выдает «Неверная функция. (Исключение из HRESULT: 0x80070001)» - PullRequest
8 голосов
/ 28 ноября 2011

Приложение написано в 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 для исключения.

1 Ответ

0 голосов
/ 29 декабря 2014

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

Форум TechNet

Параметры TCP Task Offload для драйвера NIC должны быть установлены на уровне Physicla NIC (ник хоста, который использует Внешняя виртуальная сеть).Убедитесь, что вы не отключаете дымоход и думаете, что отключаете разгрузку задач.В настройках драйвера есть опции с «разгрузкой» в названии - это опции для отключения.

  • Отключить управление питанием на сетевом сетевом адаптере (некоторые драйверы включают это).

  • Попробуйте физический сетевой адаптер Intel (наименее проблематичный из всех с Hyper-V)

  • Убедитесь, что ИС в виртуальной машине равнык хосту.

  • Проверьте другие проблемы с виртуальной машиной, такие как скачок ресурсов при загрузке процессора или диска или что-либо еще, что может привести к зависанию.

...