Ошибка возникает на клиенте .NET, который использует веб-службу через прокси-сервер HTTP
Эта статья поможет устранить проблему, из-за которой возникает ошибка (базовое подключение закрыто: не удалось устранить удаленное имя) при использовании клиента .NET для использования веб-службы через прокси-сервер HTTP.
Исходная версия продукта: платформа .NET Framework
Оригинальный номер базы знаний: 318140
Симптомы
При использовании клиента .NET для использования веб-службы через прокси-сервер HTTP может появиться следующее сообщение об ошибке:
Базовое подключение закрыто: не удалось разрешить удаленное имя.
Причина
Между веб-службой и клиентом .NET существует прокси-сервер HTTP, и соответствующие параметры прокси-сервера не настроены.
Разрешение
Чтобы устранить эту проблему, предоставьте клиенту .NET правильные параметры конфигурации прокси-сервера.
Ниже приведены параметры по умолчанию в файле Machine.config .
<configuration>
<system.net>
<defaultProxy>
<proxy
usesystemdefault = "true"
/>
</defaultProxy>
</system.net>
</configuration>
Если параметры по умолчанию не обнаруживают параметры прокси-сервера автоматически, установите значение usessystemdefault
false, а затем явно назначьте прокси-сервер. Чтобы явно назначить прокси-сервер, используйте файлMachine.config или Web.config или укажите сервер программным способом.
Чтобы указать прокси-сервер, задайте параметры файлаMachine.config или Web.config следующим образом:
<configuration>
<system.net>
<defaultProxy>
<proxy
usesystemdefault = "false"
proxyaddress="http://proxyserver"
bypassonlocal="true"
/>
</defaultProxy>
</system.net>
</configuration>
Чтобы программно изменить параметры с помощью WebProxy
объекта, используйте следующий пример кода:
using System.Net;
com.someserver.somewebservice.someclass MyWebServiceClass = new com.someserver.somewebservice.someclass ();
IWebProxy proxyObject = new WebProxy ("http://myproxyserver:80", true);
MyWebServiceClass.Proxy = proxyObject;
MyWebServiceClass.MyWebMethod ();
Прокси-серверы, которым требуется проверка подлинности NTLM
Чтобы настроить проверку подлинности Windows NT LAN Manager (NTLM) для прокси-сервера, используйте следующий пример кода:
using System.Net;
WebProxy myProxy = new WebProxy ("http://proxyserver:port", true);
myProxy.Credentials = CredentialCache.DefaultCredentials;
FindServiceSoap myFindService = new FindServiceSoap ();
myFindService.Proxy = myProxy;
По умолчанию также можно использовать прокси-сервер для всей системы. Для этого используйте следующие параметры в файле конфигурации:
<configuration>
<system.net>
<defaultProxy>
<proxy
proxyaddress = "http://proxyserver:80"
bypassonlocal = "true"
/>
</defaultProxy>
</system.net>
</configuration>
Ссылки
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по