使用带有WPAD脚本的WebProxy动态使用

Jan*_*eer 6 .net c# proxy webproxy

我想打电话给网络服务.我需要使用使用WPAD脚本的代理.此WPAD脚本的URL对于应用程序的不同部署是不同的.

虽然IE具有正确的代理设置,但应用程序作为在本地系统帐户下运行的Windows服务运行,因此应用程序不知道此Windows用户的IE设置.

将以下内容放在app.config中:

<system.net>
    <defaultProxy enabled="true" useDefaultCredentials="true" >
        <proxy autoDetect="True" scriptLocation="http://url.to/wpad.dat"/>
    </defaultProxy>
</system.net>
Run Code Online (Sandbox Code Playgroud)

但是这具有用户无法配置的限制.有没有办法从(C# - )代码动态执行上述操作?我也怀疑上面会改变不应该通过代理的webservices的行为(但我还没有验证).

http://msdn.microsoft.com/en-us/library/system.net.webproxy.aspx中,我找到了有用的文本:"(有关演示使用WPAD功能的示例,请参阅IWebProxyScript类的文档. )"但我没有找到这个例子:(.

sga*_*101 1

这篇关于代码项目的文章展示了如何使用 Windows API 执行 PAC 脚本并返回给定 url 的正确代理详细信息: http ://www.codeproject.com/Articles/12168/Using-PAC-files-proxy

您可以使用该函数找出代理详细信息,然后直接配置Web服务对象代理,或者更改WebRequest.DefaultProxy。