HTTP プロキシ サーバーを介して Web サービスを使用する .NET クライアントでエラーが発生する

この記事では、.NET クライアントを使用して HTTP プロキシ サーバーを介して Web サービスを使用すると、エラー (基になる接続が閉じられました:リモート名を解決できません) が発生する問題を解決するのに役立ちます。

元の製品バージョン:  .NET Framework
元の KB 番号:   318140

現象

.NET クライアントを使用して HTTP プロキシ サーバーを介して Web サービスを使用すると、次のエラー メッセージが表示されることがあります。

基になる接続が閉じられました。リモート名を解決する必要があります。

原因

Web サービスと .NET クライアントの間に HTTP プロキシ サーバーが存在し、適切なプロキシ設定が構成されていません。

解決方法

この問題を解決するには、.NET クライアントに適切なプロキシ構成設定を指定します。

次に、ファイルファイルの既定 のMachine.config します。

<configuration>
    <system.net>
        <defaultProxy>
            <proxy
               usesystemdefault = "true"
            />
        </defaultProxy>
    </system.net>
</configuration>

既定の設定でプロキシ サーバーの設定が自動的に検出されない場合は、false に設定し、プロキシ usessystemdefault サーバーを明示的に指定します。 プロキシ サーバーを明示的に指定するには、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>

関連情報