24

と の主な違いは何かと思いDefaultWebProxyますGetSystemWebProxy()。MSDN にはいくつかの説明がありますが、理解を深めるためにもう少し詳細が必要だと感じています。

また、C# winform アプリケーションのプロキシ構成に次のオプションがあるとします。

  1. プロキシ設定の自動検出
  2. システムのデフォルト設定を使用
  3. プロキシなし

次に、どのメソッドがどのオプションに行きますか? Auto-detect proxyやや同等Use system defaultの設定と言うのが正しいでしょうか?

4

1 に答える 1

20

MSDN 記事によるとWebRequest.DefaultWebProxy、このプロパティは、ファイルで指定されたプロキシ情報を提供しapp.configます。.NET Framework v3.5のMSDN 記事には、この特定の詳細が欠けているようです。

MSDNの記事にWebRequest.GetSystemWebProxy()は、この方法でシステム全体に構成されたプロキシ ([コントロール パネル] > [インターネット オプション]) が提供されることが記載されています。


これは、概説した 3 つのオプションを実装することをお勧めする方法です。

  1. プロキシ設定の自動検出
    • 独自のプロキシ検出ロジックを実装します。また
    • アプリケーションの設定に合わせてシステム設定を変更し、使用しますWebRequest.GetSystemWebProxy()(このアプローチはお勧めしません); また
    • できればこのオプションを含めず、ユーザーが対応するシステム全体の設定を「システムのデフォルト設定を使用」オプションとともに使用できるようにします。
  2. システムのデフォルト設定を使用
    • 使用しWebRequest.GetSystemWebProxy()ます。
  3. プロキシなし
    • WebRequest.DefaultWebProxyプロパティとWebRequest.Proxyプロパティの設定を解除してください。

編集: app.config でプロキシが構成されていない場合は、 (少なくとも .NET 4.5 の場合)WebRequest.DefaultWebRequestほぼ同じです。WebRequest.GetSystemWebProxy()違いはWebRequest.GetSystemWebProxy()、プロキシ定義のために PAC スクリプト (存在する場合) を実行することです。以下のコメントをくれたGabrielius23W
に感謝します。

于 2013-02-15T04:26:22.667 に答える