C# で記述された Excel アドインがあり、サーバーに接続して httpwebrequest 経由でデータを取得します
1 つのクライアントでプロキシ設定の [自動構成スクリプトを使用する] がチェックされており、そこでいくつかのスクリプトを使用しています。
この場合、私のアドインはサーバーに接続できません。
そこで、フィドラーを開いて、失敗する理由を確認します。その後、アドインが機能し始めます。
フィドラーを開いた状態でプロキシ設定を確認したところ、「LANにプロキシサーバーを使用する」に変更されています
コードで同じことを行い、IE 設定のプロキシ設定を使用して、コードで使用したいと考えています。
これを達成する方法を知っていますか?
私が今持っているものは以下の通りで、動作しません。ありがとう
private static void SetProxyIfNeeded(HttpWebRequest request, Uri uri)
{
var stopWatch = new Stopwatch();
stopWatch.Start();
if (_proxy == null)
{
_proxyUri = WebRequest.GetSystemWebProxy().GetProxy(uri);
_proxy = new WebProxy(_proxyUri, true)
{
Credentials = CredentialCache.DefaultNetworkCredentials
};
if (_proxyUri != null && !string.IsNullOrEmpty(_proxyUri.AbsoluteUri) && !_proxy.Address.Equals(uri) && !IsLocalHost(_proxy))
{
_realProxy = true;
}
else
{
_realProxy = false;
}
}
//if there is no proxy, proxy will return the same uri
//do we need check if client.Proxy is null or not,
if (_realProxy)
{
request.Proxy = _proxy;
}
stopWatch.Stop();
Helper.LogError("\r\n Got proxy in " + stopWatch.ElapsedMilliseconds + "ms.\r\n");
}
さらに、設定ファイルがあります
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
</configSections>
<appSettings>
<add key="log4net.Config" value="log4netConfig.xml" />
</appSettings>
<system.net>
<defaultProxy enabled ="true" useDefaultCredentials = "true">
<proxy usesystemdefault ="True" bypassonlocal="True"/>
</defaultProxy>
</system.net>
</configuration>
編集: IT 担当者からのクライアントの更新、pac がダウンロードされたように見えますが、使用されていません。使用されていない理由はわかりません。プロキシを指定する方法がない cometd を除いて、各要求で使用するように指定しています。問題?