茶トラ猫エンジニア

フリーランスとして働く、先が見えないエンジニアのメモ帳

ASP.NETでWeb.Configを使ったプロキシ(Proxy)設定

ASP.NET で外部との通信ができなくてプロキシ環境にいることに気付きました。

C# のアプリでは IE の設定が勝手に使われたので、そのままの勢いでプロキシの意識が抜けていました。

今回は ASP.NET で Web.Config を利用したプロキシ設定を紹介します。

2種類のプロキシ設定

ASP.NET の場合は、内部のコード(C#やVB)で部分的にプロキシ設定する方法と、Web.Config ファイルに定義してアプリケーション全体に反映する方法があります。

今回は Web.Config に定義する方法を備忘録として残しておきたいと思います。

Web.Configの設定

設定は、system.net タグの中に書きます。

プロキシサーバの情報と、プロキシサーバの設定を除外する通信先 IP アドレスなど細かい設定も可能です。

下記は http://example.org:8080/ をプロキシサーバとして使用し、192.168 から始まる IP に対してはプロキシサーバを経由せずにダイレクトに通信させる設定です。

<configuration>
  <appSettings/>
  <connectionStrings/>
  <system.web>

    (省略)

  </system.web>
  <system.net>
    <defaultProxy>
      <proxy
        usesystemdefault="False"
        proxyaddress="http://example.org:8080/"
        bypassonlocal="True" />
      <bypasslist>
        <add address="192\.168\.\d{1,3}\.\d{1,3}" />
      </bypasslist>
    </defaultProxy>
  </system.net>
</configuration>