将应用程序从 Window Server 2003 迁移到 Window Server 2008 x64。我们有一个简单的 VBS 脚本,它可以在域之外使用 post 请求获取 XML 文档。该脚本在 Windows Server 2003 上完美运行,但在新服务器上,我们不断收到状态代码 407(代理身份验证失败)。我确实验证了我可以在不从 Intranet 设置任何代理信息的情况下提取文件。Server 2008 中的代理凭据方法是否有任何更改?
代码简化:
Dim o
Set o = CreateObject("Msxml2.ServerXMLHTTP.6.0")
o.open "POST", "https://somesite.com", false
o.setProxy 2, "myproxy:8080", ""
o.setProxyCredentials "user", "pass"
o.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
o.send "loginId=USER&password=1234"
While o.readyState <> 4
o.waitForResponse 1000
Wend
Wscript.echo o.status
似乎正在联系代理,因为没有它我无法解析服务器名称或地址,但是代理用户/密码没有得到正确验证,但在 Window Server 2003 上工作。
编辑 20140303:已经几个月了,我还没有弄清楚这一点。当我们希望淘汰我们的 Windows 2003 机器时,找出问题所在变得越来越重要。
我注意到如果我将发送数据更改为不正确的 UID/PWD,我会从页面(不正确的登录页面)收到响应。我不明白为什么这在 Server 2003 上可以完美运行,但在 Server 2008 R2 上似乎是不可能的。
如果我在同一个盒子上打开 IE,并使用相同的代理信息并使用相同的 UID/PWD 访问同一个站点,它也可以工作。我这样做是为了确保没有某种基于 IP 的块,其中代理或站点 UID/PWD 只能在旧机器上工作。