:在.NET IE设置使用代理服务器自动配置(Using Proxy Automatic Confi

2019-07-04 03:19发布

我遇到了麻烦代理自动配置(PAC)在IE选项使用。NET的WebRequest预期工作。

根据这篇文章:
代理检测要考虑与自动配置.NET中的负担关用户

该系统代理应该默认与每个WebRequest的设置。

那是的proxy.js PAC文件的样子:

function FindProxyForURL(url, host)
{
  return "PROXY ProxyServerName:3118; DIRECT;";
}

我也看了看这个帖子: 我应该如何设置使用默认凭据的默认代理?

这表明在app.config中添加此:

<system.net>
  <defaultProxy useDefaultCredentials="true" />
</system.net>

添加此并没有帮助。

我创建了一个小型控制台应用程序只是为了测试这一点..这就是:

static void Main(string[] args)
{
    HttpWebRequest request = null;
    try
    {               
        String resolvedAddress = WebRequest.DefaultWebProxy.GetProxy(new Uri("http://www.google.com")).ToString();
        Console.WriteLine("Proxy for address is: " + resolvedAddress);

        Uri m_URLToTest = new Uri("http://www.google.com");
        request = WebRequest.Create(m_URLToTest) as HttpWebRequest;
        request.Method = "GET";
        request.KeepAlive = false;
        request.Timeout = 5000;
        request.Proxy = WebRequest.DefaultWebProxy;
        WebResponse response = request.GetResponse();
        StreamReader reader = new StreamReader(response.GetResponseStream());
        string message = reader.ReadToEnd();
    }
    catch (Exception ex)
    {
        Console.Write("Exception");
    }

}

输出:代理的地址是http://www.google.com

而不是代理的地址是ProxyServerName:3118

它使用自动配置脚本,只有当发生...

我错过了什么? 请帮忙!

Answer 1:

找到了解决办法!

这是非常重要的是,PAC文件的MIME类型是:内容类型:应用程序/ x-NS-代理自动配置]

其他MIME类型可能无法正常工作。

确保使用fiddler2(含禁用缓存),其MIME类型是适当的。 有些配置可能显示的Content-Type:text / plain的是坏的。



Answer 2:

请确保你已经检查Internet (Client & Server)Private Networks (Client & Server)的能力Package.appxmanifest

[资源]



文章来源: Using Proxy Automatic Configuration from IE Settings in .Net
标签: c# .net proxy pac