.NET Framework のアプリケーションが参照するプロキシ設定を構成する方法

こんにちは、Platform SDK (Windows SDK) サポートチームです。

今回は、HttpWebRequest クラスや WebClient クラスを利用しているアプリケーションで HTTP 通信に失敗する場合のトラブルシュートとして、.NET Framework のアプリケーションが参照するプロキシ設定を構成する方法をご案内します。

 

.NET Framework のアプリケーションから、HTTP 通信を行うために HttpWebRequest クラスや WebClient クラスを利用するかと思いますが、これらのクラスは既定では Internet Explorer のプロキシ設定を参照しています。

このため、HttpWebRequest クラスや WebClient クラスを利用しているアプリケーションで HTTP 通信に失敗する場合は、Internet Explorer のプロキシ設定もチェックしてみてください。

 

例えば、HTTP の通信先アドレスを Internet Explorer のアドレスバーに入力してもアクセスに失敗する場合は、Internet Explorer のプロキシ設定が誤っている可能性があります。

また、アプリケーション実行環境のプロキシサーバー側の構成によっては、ローカルネットワーク内のホストへの接続を拒否する設定となっている場合があります。

このような環境では、プロキシサーバーを経由せずに直接通信を行わせるために、Internet Explorer の設定で [ローカル アドレスにはプロキシサーバーを使用しない] をオンにする必要があります。

 

また、Internet Explorer の設定に依存せず、HttpWebRequest クラスや WebClient クラスが使用するプロキシ設定を直接指定したい場合は、以下の方法をご参照ください。

 

1. アプリケーション構成ファイルを作成する方法

 

プロキシコンフィギュレーション

https://msdn.microsoft.com/ja-jp/library/dkwyc043.aspx

※ "スタティック プロキシ" のセクションをご覧ください。

 

<実行ファイル名>.exe.config という名前で、アプリケーション構成ファイルを作成し、そのファイル内において、上記資料に記載の方法でプロキシ サーバーを指定します。

作成したアプリケーション構成ファイルは実行ファイルと同じフォルダーに保存します。

 

例:実行ファイル名が "Sample.exe" の場合

"Sample.exe.config" という名前のアプリケーション構成ファイルを作成します。

 

--- サンプル ---

<configuration>

<system.net>

<defaultProxy>

<proxy

usesystemdefault="false"

proxyaddress="https://192.168.1.10:3128"

bypassonlocal="true"

/>

</defaultProxy>

</system.net>

</configuration>

--- サンプル ---

 

2. プログラムの中で指定する方法

 

HttpWebRequest.Proxy プロパティやWebClient.Proxy プロパティにてプロキシ設定を指定することが可能です。

 

HttpWebRequest.Proxy プロパティ

https://msdn.microsoft.com/ja-jp/library/czdt10d3.aspx

 

WebClient.Proxy プロパティ

https://msdn.microsoft.com/ja-jp/library/system.net.webclient.proxy.aspx