2009-07-10 5 views
3

を参照します)私は、私は現在、それをテストする手段を持っていない)、それはは)私はそれが時代遅れの警告を生成しているので、私に迷惑ですコードのビットを持っていますが、ので、私はそれを取り除くのを警戒しています

Cを書いていません。 (つまり、私はそれが必要とされているマシンにアクセスすることはできません)

コードは以下のとおりである

System.Net.WebProxy proxyObject = System.Net.WebProxy.GetDefaultProxy(); 
proxyObject.Credentials = System.Net.CredentialCache.DefaultCredentials; 
proxyObject.BypassProxyOnLocal = true; 
System.Net.GlobalProxySelection.Select = proxyObject; 

警告メッセージは、31「System.Net.GlobalProxySelection」を警告

されています廃止されました: 'このクラスは廃止されました。グローバルデフォルトプロキシにアクセスして設定する代わりに、WebRequest.DefaultWebProxyを使用してください。 GetEmptyWebProxyの代わりに 'null'を使用します。 http://go.microsoft.com/fwlink/?linkid=14202 '

しかし、私の理解が正しいならば(そして、プログラムがアクセスしようとしているWebサービスがローカルではないと仮定すると)本当にすべきことは、これらの4行を削除するだけです。

はこの正しい、または逃した何かを持っていますか?

PS。おそらく警告を無視する#pragmaオプションがあることを知っていますが、私はそのルートを下りたいとは思っていません。

答えて

3

はい、私はあなたが正しいと思います

これをテストするには、Fiddlerが適しています。これは、トレースHTTP要求とは別に、IEプロキシとして自動的に設定されるためです。

あなたがバイオリンを実行し、コード

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://news.bbc.co.uk"); 
//request.Proxy = null; // uncomment this to bypass the default (IE) proxy settings 
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 

Console.WriteLine("Done - press return"); 
Console.ReadLine(); 

次の作品場合は、コード内で明示的なプロキシオーバーライドしているが表示されます(私は本当に何をすべきか」のように、単にこれらの4行を削除しています")、リクエストは実際にIEからのグローバルデフォルトプロキシを受け取り、はあなたのリクエストをFiddlerで見ます。

あなたがnullのプロキシ割り当てのコメントを外した場合のみ、要求は、グローバルプロキシ設定をバイパスし、フィドラーには表示されません。

だから私はあなたが正しいと思います。既定のプロキシの場合、明示的なプロキシコードを削除できます。

+0

だけダウンロードし、フィドラーを試してみましたが、あなたは 感謝を予測していたとして、それは正確にやりました。 IIRC、.NETは、アプリケーション起動時のデフォルトのWebプロキシをピックアップ: – sgmoore

+1

私はここで1つの警告があると思います。 WebRequest.DefaultWebProxyを使用しない限り、実行時に変更された場合(たとえば、Fiddlerを起動したため)、変更は尊重されません。しかし、私は1年以上でこれを試していません。 – EricLaw

関連する問題