WebClient クラスを使用して Web サーバーへの HTTPS POST を実行する比較的単純な機能があります。このコードは確実に機能しますが、EarthLink または AT&T のダウンロード アクセラレータ機能を使用すると問題が発生します。
ダウンロード アクセラレータは、ダイヤルアップ接続のプロキシ設定を変更して、HTTP プロトコルのみに localhost:8080 を指定することによって機能します。この構成では、おそらく HTTPS プロトコルは影響を受けないはずです。実際、Internet Explorer を使用してhttps://www.wellsfargo.comに移動すると、エラーは発生しません。
ただし、.NET 2.0 (または 3.5) を使用する場合、WebClient クラスは、この構成でhttps://www.wellsfargo.comからの単純な HTTPS GET を実行できません。
簡単なテストとして、次のことを行います。
次の場合に、高度な LAN プロキシ構成を指定します。
HTTP アドレス: whacked:8080
安全なアドレス: securewhacked:8081
C# では、次の関数を呼び出します。
IWebProxy defaultWebProxy = WebRequest.DefaultWebProxy;
Uri proxyUri = defaultWebProxy.GetProxy("https://www.wellsfargo.com");
proxyUri は「securewhacked:8081」である必要があります。
代わりに、proxyUri は "whacked:8080" です。
これは、.NET の「自動」プロキシ使用におけるバグのようです。その結果、ダウンロード アクセラレータをオンにすると、ソフトウェアが失敗します。
ここで何が起こっているか知っている人はいますか?
お客様がアクセラレータを無効にするのは比較的簡単であることはわかっていますが、ユーザーがアクセラレータを無効にする必要がなく、ソフトウェアがすぐに動作することを望んでいます。
任意の提案をいただければ幸いです。