我正在使用来自经典asp页面的Microsoft.XMLHTTP将信息发布到另一个网站......
我希望能够检查fiddler发生了什么,为此我必须找到一种方法来配置Microsoft.XMLHTTP以使用代理......
有可能吗? Microsoft.XMLHTTP从哪里获取配置?
非常感谢
答案 0 :(得分:14)
我认为这里的一些事情需要清理。
ProgID“Microsoft.XMLHTTP”指向与“MSXML2.XMLHTTP”相同的类。此类使用Internet Explorer使用的WinINET HTTP协议堆栈,因此将使用PC上“Internet设置”中的任何代理配置。
因此对于“Microsoft.XMLHTTP”,proxycfg命令没用。
XMLHTTP的替代方案是“MSXML2.ServerXMLHTTP”。此类使用WinHTTP HTTP协议栈,该协议栈设计为轻量级且服务器友好。在WinINET不在的同一进程中,在多个线程中使用多个实例是安全的。因此,ServerXMLHTTP应该用在服务器端的ASP代码中。
WinHTTP不使用WinINET使用的Internet设置,因此要配置ServerXMLHTTP将使用您需要使用proxycfg命令的代理。一个非常有用的命令是: -
proxycfg -u
将当前的WinINET代理设置复制到WinHTTP使用的设置,如果使用fiddler等工具,这对于在启动fiddler后开始监控通过WinHTTP的流量非常有用。 (请注意,您将使用proxycfg -d
跟进以删除代理设置。)
ServerXMLHTTP还有setProxy
方法,允许动态配置实际代理设置为代码。
答案 1 :(得分:6)
对于Windows Vista及更高版本,可能已弃用proxycfg.exe,并替换为 netsh winhttp 。如本文所述:http://msdn.microsoft.com/en-us/library/windows/desktop/aa384069%28v=vs.85%29.aspx
正如我在win7中的情况,我需要做以下设置代理:
netsh winhttp set proxy myProxyServer:80
答案 2 :(得分:2)
糟糕
我想我找到了它
http://support.microsoft.com/kb/289481/EN-US/
你必须发布像
这样的东西
proxycfg -d -p myProxyServer:80 "<local>"
...
编辑:
我还发现使用ServerXMLHTTP而不是XMLHttp,你有一个setProxy方法......
http://msdn.microsoft.com/en-us/library/ms760236(VS.85).aspx
这是一个用法示例
http://msdn.microsoft.com/en-us/library/ms763680(VS.85).aspx
...
答案 3 :(得分:0)
我查看了这个帖子来解决我的问题 - 它有所帮助,但现在对新系统进行了更改 我的情况是从公司服务器进行Web MSXML2.ServerXMLHTTP调用,通过代理服务器使用已消化的Active Directory凭据。
这里有几个问题,但我最终设法让它只使用标准MSXML2.ServerXMLHTTP而不必指定.3.0或.6.0版本。
较新的Windows服务器没有proxycfg,您需要使用前面提到的netsh。
你需要排列一些东西 在我的场景中,我使用AD用户帐户的凭据运行网站和应用程序池(这是数据库访问所必需的) 我建议至少应用程序池需要作为AD帐户运行
这是在64位Windows系统上
那怎么样?
检查winhttp代理设置 在命令行
%WINDIR%\System32\NETSH WINHTTP SHOW PROXY
检查winhttp代理设置 在命令行
%WINDIR%\SysWOW64\NETSH WINHTTP SHOW PROXY
如果您需要设置它们
从命令行[将8080更改为您的端口]
%WINDIR%\System32\NETSH WINHTTP SET PROXY PROXYSERVERURL:8080
%WINDIR%\SysWOW64\NETSH WINHTTP SET PROXY PROXYSERVERURL:8080