プロキシサーバーを介して使用するバックグラウンド操作(ウィンドウサービス)があります。
基本的に、私たちはこれを行っています:
public WebClient GetWebClient(){
var webClient = new WebClient();
webClient.proxy = new WebProxy(Configuration.ProxyHost, Configuration.ProxyPort);
// add a bunch of headers to the WebClient (sessionids, etc.)
return webClient;
}
プロキシは、FreeProxyを使用して自分で構成したプロキシです。
ロギングを有効にし、テストしているマシンで、Firefoxで使用するときにプロキシに対して要求が行われていることを確認できます。
IPがオフィス内にある必要があることを除いて、プロキシサーバーに認証は必要ありません(Firefoxの証拠から、問題ではないと思います)。
ただし、バックグラウンドプロセス内では、Webクライアントを使用するときにプロキシを使用していないようです。
using(var wc = GetWebClient())
using(var s = wc.OpenRead("someurl"))
using(var sr = new StreamReader(s)){
return sr.ReadToEnd();
}
プロキシからエラーは発生しませんが、プロキシが明示的に設定されていても、エラーなしで進んでいるようです。
情報は、プロキシ経由ではなく、正常に返されるようです。
プロキシを使用するときに欠けているものはありWebClient
ますか?
編集:詳細。サーバーでプロキシサービスを無効にすると、接続できないという例外が発生します。したがって、Webクライアントがプロキシに到達しようとしているように見えますが、そのトラフィックは実際にはプロキシを通過していません。
Inner Exception: SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond