12

我无法让 IE 选项中的代理自动配置 (PAC) 使用 .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

仅在使用自动配置脚本时才会发生...

我错过了什么吗?请帮忙!

4

2 回答 2

9

找到了解决方案!

PAC 文件的 mime 类型非常重要:[Content-type: application/x-ns-proxy-autoconfig]

其他 mime 类型可能不起作用。

确保使用适合的 mime 类型的 fiddler2(禁用缓存)。某些配置可能会显示 Content-Type: text/plain 这是不好的。

于 2012-11-26T09:54:46.407 回答
0

Internet (Client & Server)确保您已Private Networks (Client & Server)Package.appxmanifest.

看到这个

[来源]

于 2015-10-08T06:12:36.340 回答