Получить одно или несколько сообщений об ошибке при попытке сделать HTTP-запроса в приложения, построенные на.NET Framework 1.1 с пакетом обновления 1

Переводы статьи Переводы статьи
Код статьи: 915599 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

В этой статье описываются сообщения об ошибках, возникающих при использовании Microsoft.NET Framework 1.1 пакетом обновления 1 (SP1) для выполнения запросов HTTP или при вызове метода веб-службы.

Проблема

При попытке выполнения запроса HTTP в приложении, на основе.NET Framework, может появиться одно или несколько из следующих сообщение об ошибке:
Сообщение об ошибке 1
Базовое соединение закрыто: не удалось для подключения к удаленному серверу.
Сообщение об ошибке 2
Базовое соединение закрыто: Непредвиденная ошибка при передаче.
Сообщение об ошибке 3
Базовое соединение закрыто: Непредвиденная ошибка при приеме.
Сообщение об ошибке 4
Базовое соединение закрыто: Сервер произвел нарушение протокола HTTP.
Сообщение об ошибке 5
Базовое соединение закрыто: невозможно установить безопасный канал для SSL/TLS.
Сообщение об ошибке 6
Операция имеет тайм аута

Причина

Сообщение об ошибке 1

Данная проблема возникает, когда.NET Framework не удается установить подключение к удаленному серверу. Это может происходить, когда один или несколько выполняются следующие условия:
  • Возникновении сбоя в работе сети.
  • Прокси-сервер блокирует HTTP-запроса.
  • Проблема в системе доменных имен (DNS).
  • Возникает проблема проверки подлинности сети.
Чтобы устранить эту проблему, содержатся в разделе разрешения A, B и C.

Сообщение об ошибке 2

Эта проблема возникает, когда клиентский компьютер не может отправить HTTP запрос. Клиентский компьютер не удается отправить HTTP-запрос, так как подключение было закрыто или недоступен. Эта проблема может возникнуть при клиентский компьютер отправляет большой объем данных. Чтобы устранить эту проблему, см. разрешение A, D, E, F и O.

Сообщение об ошибке 3

Данная проблема возникает, когда сервер или другого сетевого устройства неожиданное закрытие существующего соединения Transmission Control Protocol (TCP). Это может происходить, когда значение тайм-аута на сервере или в сети устройство установлено слишком низкое. Для решения этой проблемы находятся в разрешении A, D, E, F, и O. проблема может также возникать, если сервер сбрасывает подключение неожиданно, например, если необработанное исключение происходит сбой серверного процесса. Проанализируйте журналы сервера, чтобы увидеть, если это возможно, проблему.

Сообщение об ошибке 4

Данная проблема возникает, когда.NET Framework обнаруживает, что ответ сервера не удовлетворяет стандарту HTTP 1.1 RFC. Эта проблема может возникнуть при ответ содержит неправильные заголовки или разделители неверный заголовок. Для решить эту проблему, содержатся в разделе разрешения a и ж.

Для получения дополнительных сведений о HTTP-заголовков посетите World Wide Web Consortium веб-узла:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.HTML#sec6
Корпорация Майкрософт предоставляет контактные данные независимых производителей, чтобы помочь пользователям получить необходимую техническую поддержку. Эта информация может быть изменена без предварительного уведомления. Корпорация Майкрософт не поддерживает гарантирует точность этой контактной информации о независимых производителей.

Сообщение об ошибке 5

Это может происходить, когда один или несколько из следующих действий признаки:
  • При использовании недопустимого клиентского сертификата или указан недопустимый сертификат сервера.
  • При возникновении проблемы подключения TCP.
  • Клиентский компьютер отправляет большой объем данных.
  • Значение времени ожидания на сервере или в другой сети устройство установлено слишком низкое.
  • При возникновении совместимости протоколов HTTPS проблема.
Проблемы подключения TCP содержатся в разделе разрешения A, D, E, F и O. Клиентский сертификат проблем и ошибок в сертификате сервера см. разрешение h и I. Проблемы совместимости протокол HTTPS содержатся в разделе разрешение К.

Сообщение об ошибке 6

Данная проблема возникает, когда будет достигнуто значение времени ожидания клиента Прежде чем произойдет одно из следующих условий:
  • HTTP-соединение установлено.
  • HTTP-ответ, полученный от сервера.
  • Поток данных, полностью записываются или чтение.
Для решения этой проблемы находятся в разрешении A, E, K, L, M, и N.

Решение

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

Разрешение a

Для решения этой проблемы, убедитесь, что вы используете наиболее последнюю версию.NET Framework. Для получения дополнительных сведений щелкните следующий номер статьи номер статьи базы знаний Майкрософт:
318785Как определить, какие версии.NET Framework установлены в системе и применялись ли пакеты обновления

Разрешение b

Для решения этой проблемы, убедитесь, что параметры прокси-сервера Исправьте. Чтобы сделать это, используйте следующие методы:
  • Статические WebProxy.GetDefaultProxy метод. Для получения дополнительных сведений посетите следующий веб-узла корпорации Майкрософт веб-узел:
    http://msdn2.Microsoft.com/en-us/library/System.NET.WebProxy.getdefaultproxy (vs.71) .aspx
  • Определение <proxy></proxy> элемент в файле конфигурации приложения. Для получения дополнительных сведения, посетите следующий веб-узел корпорации Майкрософт:
    http://msdn2.Microsoft.com/en-us/library/aa903369 (VS.71) .aspx
  • Настройка.NET клиента для использования HTTP 1.0, изменив HttpWebRequest.ProtocolVersion свойство. Для получения дополнительных сведений посетите следующий веб-узла корпорации Майкрософт веб-узел:
    http://msdn2.Microsoft.com/en-us/library/System.NET.HttpWebRequest.protocolversion (vs.71) .aspx
    Примечание По умолчанию.NET Framework использует HTTP 1.1.
  • Если используется протокол SSL (Secure Sockets Layer), убедитесь, что прокси-сервер не настроен на использование любых правил, которые блокируют HTTPS.
  • При использовании autoproxy, щелкните следующую статью номер статьи базы знаний Майкрософт:
    873199 Использование autoproxy в управляемом коде

Разрешение c

Для решения этой проблемы, убедитесь, что приложение имеет разрешения, сетевые вызовы и вызовы сокета. Это разрешение применяется, если приложение, которое делает HttpWebRequest вызов выполняется из веб-приложений. Возможно, потребуется предоставить чтения разрешения для ASPNET учетной записи доступ к следующим ресурсы:
  • Поставщик Microsoft WinSockProxy WS2.0 (Wspwsp.dll) Файл
  • В
    HKLM\System\CurrentControlSet\Services\DnsCache
    Раздел реестра
  • В
    HKLM\System\CurrentControlSet\Services\WinSock2
    Раздел реестра
Примечание Чтобы определить наличие необходимого рабочего процесса ASPNET разрешения, с помощью утилиты FileMon и RegMon программы. Для загрузки Утилиты FileMon и RegMon служебную программу, посетите следующий веб-узла Sysinternals веб-узел:
http://TechNet.Microsoft.com/en-us/Sysinternals/Default.aspx
В Продукты независимых производителей, обсуждаемые в данной статье, производятся компаниями являются независимыми от корпорации Майкрософт. Корпорация Майкрософт не дает никаких гарантий, подразумеваемых или в противном случае относительно производительности или надежности этих продуктов.

Разрешение d

Чтобы устранить эту проблему, отключите функцию keep-alive. В .NET Framework, установки HttpWebRequest.KeepAlive свойство в значение FALSE. Для этого при вызове веб-службы, выполните следующие действия.

Примечание Активный компонент необходим для проверки подлинности NTLM.
  1. Создайте новый класс, наследующий из созданного прокси класс.
  2. Добавление метода к классу для переопределения GetWebRequest метод. Это изменение позволяет осуществлять доступ к HttpWebRequest объект. При использовании Microsoft Visual C# необходимо создать метод быть следующего вида.
    class MyTestService:TestService.TestService
    {
        protected override WebRequest GetWebRequest(Uri uri)
        {
            HttpWebRequest webRequest = (HttpWebRequest) base.GetWebRequest(uri);
            //Setting KeepAlive to false
            webRequest.KeepAlive = false;
            return webRequest;
        }
    }
    При использовании Microsoft Visual Basic.NET, должен быть новый метод подобное приведенному ниже.
    Class MyTestService 
         Inherits TestService.TestService
            Protected Overrides Function GetWebRequest(ByVal uri As Uri) As System.Net.WebRequest
                Dim webRequest As System.Net.HttpWebRequest
                webRequest = CType(MyBase.GetWebRequest(uri), System.Net.HttpWebRequest)
               'Setting KeepAlive to false 
                webRequest.KeepAlive = False
                GetWebRequest = webRequest
            End Function
    End Class
  3. Создание нового класса, а затем используйте новый класс для вызова метода веб-службы.

Разрешение e

Чтобы решить эту проблему, установите ServicePointManager.MaxServicePointIdleTime свойство меньше, чем значение времени ожидания проверки активности сервера подключение.

Заметки
  • При ServicePoint Объект уже простаивает в течение времени, указанного в MaxIdleTime свойство, это мусор.
  • Убедитесь, что ServicePointManager.MaxServicePointIdleTime свойство устанавливается перед запросов HTTP. Для получения дополнительных сведения о ServicePointManager.MaxSercvePointIdleTime свойство, посетите следующий веб-узел корпорации Майкрософт:
    http://msdn2.Microsoft.com/en-us/library/System.NET.servicepointmanager.maxservicepointidletime (vs.71) .aspx

Разрешение f

Для решения этой проблемы, увеличьте значение тайм-аута на сервере компьютер и на других сетевых устройств. Чтобы увеличить значение времени ожидания Интернет информации Microsoft Services (IIS) 6.0, выполните следующие действия.
  1. Нажмите кнопку Начало, нажмите кнопку Элемент управления «», нажмите кнопку Администрирование, а затем нажмите кнопкуДиспетчер служб IIS.
  2. Щелкните имя компьютера, который требуется изменить параметры и нажмите кнопку Веб-узлы.
  3. Щелкните правой кнопкой мыши веб-узел, который требуется изменить, и Нажмите кнопку Свойства.
  4. Введите новое значение в Время ожидания подключенияполе, а затем нажмите кнопку ОК.
  5. На Файл меню, нажмите кнопкуВыход.

Разрешение g

Чтобы обойти эту проблему, установите useUnsafeHeaderParsing Кому Значение true. Для получения дополнительных сведений о useUnsafeHeaderParsing свойства, щелкните следующий номер статьи в База знаний корпорации Майкрософт:
888528Список ошибок, исправленных в.NET Framework 1.1 с пакетом обновления (1) но это не описано в отдельных статьях базы знаний Майкрософт

Разрешение h

Чтобы устранить эту проблему, укажите допустимый сертификат для приложения. Для получения дополнительных сведений о том, как использовать сертификаты клиента, обратитесь к следующей статье для к следующим статьям Microsoft Knowledge Base:
901183Способы вызова веб-службы с использованием клиентского сертификата для проверки подлинности в приложении ASP.NET веб-приложения
895971 Как отправить сертификат клиента, используя классы HttpWebRequest и HttpWebResponse в Microsoft Visual C#.NET

Разрешение я

Чтобы устранить эту проблему, предоставить действующего сертификата безопасности для сервер. Кроме того можно решить эту проблему, необходимо установить корневой сертификат центра сертификации или, исправляя распространенные Имя сертификата сервера. Для получения дополнительных сведений об именах сертификатов сервера щелкните следующий номер статьи базы Microsoft База знаний:
813618Оповещение системы безопасности: имя сертификата безопасности недопустимо или не совпадает с именем веб-узла
Предупреждение Этот способ может увеличить ваш компьютер или сеть более уязвим для атак злоумышленников и проникновения потенциально опасных программ, например вирусы. Корпорация Майкрософт не рекомендует использовать этот способ, но Майкрософт Таким образом, этот способ можно применить на свой собственный риск. Используйте это Временное решение на свой страх и риск.

Кроме того, можно проверить код приложения игнорировать предупреждения об этих сертификатов. Чтобы сделать это, реализация собственные Интерфейс ICertificatePolicy интерфейс. Затем можно задать ServicePointManager.CertificatePolicy свойство, чтобы использовать экземпляр политики сертификата перед веб-страниц Служба вызов метода.

Примечание В ICertificatePolicy.CheckValidationResult метод реализует политику проверки достоверности сертификата приложения. Для получения дополнительных сведений о ICertificatePolicy.CheckValidationResult метод, посетите следующий веб-узел корпорации Майкрософт:
http://msdn2.Microsoft.com/en-us/library/System.NET.ICertificatePolicy.checkvalidationresult (vs.71) .aspx
Более подробные сведения и примеры кода щелкните номер следующей статьи номер статьи базы знаний Майкрософт:
823177PRB: "System.Net.WebException. Базовое соединение закрыто. Не удалось установить доверительные отношения с удаленного сервера"сообщение об ошибке при обновлении.NET Framework
Важные Мы рекомендуем не пропускать предупреждения сертификат SSL в коде из-за возможных угроз безопасности.

Разрешение j

Чтобы устранить эту проблему, измените протокол HTTPS с SSL для Защиты транспортного уровня (TLS).

Примечание Если вы уже используете TLS, изменение протокола HTTPS для SSL. Для Изменение протокола HTTPS на клиентском компьютере, см.»ServicePointManager.SecurityProtocol Свойство"раздел на следующий веб-узел корпорации Майкрософт:
http://msdn2.Microsoft.com/en-us/library/System.NET.servicepointmanager.SecurityProtocol.aspx
Примечание Например для поддержки SSL3 протокол и протокол TLS1 Используйте код, аналогичный приведенному ниже.
ServicePointManager.SecurityProtocol= SecurityProtocolType.Ssl3|SecurityProtocolType.Tls;
Для получения дополнительных сведения о способах изменения протокола HTTPS на компьютере сервера щелкните следующий номер статьи базы Microsoft База знаний:
187498Как отключить PCT 1.0, SSL 2.0, SSL 3.0 и TLS 1.0 в службах IIS

Разрешение k

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

Примечание Значение по умолчанию maxConnection свойство равно 2. Для Microsoft ASP.NET приложений, вызов веб-служб, рекомендуется установить значение 12 количество процессоры. Чтобы задать это значение с помощью кода приложения, используйте ServicePointManager.DefaultConnectionLimit свойство. Для получения дополнительных сведений о ServicePointManager.DefaultConnectionLimit свойство, посетите следующий веб-узел корпорации Майкрософт:
http://msdn2.Microsoft.com/en-us/library/System.NET.servicepointmanager.DefaultConnectionLimit (vs.71) .aspx
Чтобы задать это значение с помощью файлов конфигурации для приложения, добавьте следующий код в файле конфигурации.
<connectionManagement>
  <add address="*" maxconnection="12"/>
</connectionManagement>
Для получения дополнительных сведений об использовании <connectionmanagement></connectionmanagement> элемент, посетите следующий веб-узел корпорации Майкрософт:
http://msdn2.Microsoft.com/en-us/library/aa903351 (VS.71) .aspx

Разрешение l

Чтобы устранить эту проблему, убедитесь, что параметры времени ожидания сервер и на других сетевых устройствах реализованы правильно. Для получения дополнительных сведения о реализации параметров времени ожидания нажмите следующие кнопки номер статьи базы знаний Майкрософт:
904262Запрос, отправленный с помощью класса HttpWebRequest может перестать отвечать на запросы при использовании класса HttpWebRequest в приложении ASP.NET приложения

Разрешение m

Чтобы устранить эту проблему, ознакомьтесь с ASP.NET производительности СУБД. Для получения дополнительных сведений о ASP.NET быстродействия, щелкните следующий номер просмотр статьи в статье базы знаний Майкрософт:
821268Состязание за низкой производительности и взаимоблокировок при выполнении запросов веб-службы из ASP.NET приложений

Разрешение n

Чтобы устранить эту проблему, увеличьте значения тайм-аута свойства в коде клиентского приложения. Чтобы сделать это, используйте следующие Свойства:
  • HttpWebRequest.Timeout
  • HttpWebRequest.ReadWriteTimeout
Для получения дополнительных сведений о HttpWebRequest.Timeout свойство, посетите следующий веб-узел корпорации Майкрософт:
http://msdn2.Microsoft.com/en-us/library/cy9yd268.aspx
Для получения дополнительных сведений о HttpWebRequest.ReadWriteTimeout свойство, посетите следующий веб-узел корпорации Майкрософт:
http://msdn2.Microsoft.com/en-us/library/b1w9c0s4.aspx

Разрешение o

Чтобы устранить эту проблему, убедитесь, что клиентский компьютер не не отправлять HTTP 100-продолжения заголовков. Кроме того, убедитесь, что клиент компьютер не ожидается получения HTTP 100-продолжения заголовков.

Примечание Это решение является эффективным Если веб-сервер или прокси-сервера сервер не поддерживает HTTP 100-продолжения заголовков. Для получения дополнительных сведений об отключении HTTP 100-продолжения заголовков для клиентского компьютера посетите веб-узел корпорации Майкрософт:
http://msdn2.Microsoft.com/en-us/library/System.NET.servicepointmanager.expect100continue.aspx

Ссылки

Для получения дополнительных сведений о вопросы производительности при сделать вызовы веб-службы из ASP.NET приложений посетите следующий веб-узел корпорации Майкрософт:
http://msdn2.Microsoft.com/en-us/library/aa480507.aspx
Для получения дополнительных сведений о проблемы с производительностью и взаимоблокировки проблемы при выполнении запросов веб-службы из ASP.NET приложений щелкните следующий номер статьи для просмотра в статье базы знаний Майкрософт:
821268Состязание за низкой производительности и взаимоблокировок при выполнении запросов веб-службы из ASP.NET приложений
Для получения дополнительных сведений о способах улучшения производительность ASP.NET приложений посетите следующие корпорации Майкрософт Веб-узел:
http://msdn2.Microsoft.com/en-us/library/ms998549.aspx
Для получения дополнительных сведений о том, как повысить производительность веб-узла службы, посетите следующий веб-узел корпорации Майкрософт:
http://msdn2.Microsoft.com/en-us/library/ms998562.aspx
Для получения дополнительных сведений о разработке безопасных приложений ASP.NET-подключения приложения, посетите следующий веб-узел корпорации Майкрософт:
http://msdn2.Microsoft.com/en-us/library/aa302408.aspx
Примечание Транспортный протокол TCP, используемый для HTTP-запросов. TCP — протокол для надежной, ориентированный на установление соединения. Однако при закрытии соединения TCP неожиданно приложение повторяет попытку запроса. Для получения дополнительных сведений о протокол TCP и о поведения клиента, если сервер закрывает подключение, World Wide Web Consortium веб-сайте по адресу
http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.HTML#sec8.2.4
Корпорация Майкрософт предоставляет контактные данные независимых производителей, чтобы помочь пользователям получить необходимую техническую поддержку. Эта информация может быть изменена без предварительного уведомления. Корпорация Майкрософт не поддерживает гарантирует точность этой контактной информации о независимых производителей. Для получения дополнительных сведений о программе FileMon и служебной программы RegMon, щелкните следующий номер статьи в Microsoft Knowledge Base:
198038Полезные средства для упаковки и развертывания проблемы
Для Дополнительные сведения о сетевом мониторе, щелкните следующие номера к следующим статьям Microsoft Knowledge Base:
148942Инструкции по записи сетевого трафика в сетевом мониторе
812953 Использование сетевого монитора для записи сетевого трафика

Свойства

Код статьи: 915599 - Последний отзыв: 28 сентября 2011 г. - Revision: 5.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft .NET Framework 1.1 Service Pack 1
Ключевые слова: 
kbtshoot kbprb kbmt KB915599 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:915599

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com