应用需要Fiddler才能在部分PC上正常执行
Application Needs Fiddler to Execute Properly on Some PCs
我有一个 VB6 应用程序,在特定条件下只有 运行s。当它失败时(在下面的发送语句中),它会生成一个
运行-时间错误'-2147012867 (80072efd)': 无法建立与服务器的连接
有趣的是,当 Fiddler 运行ning 时,它总是 运行s。在某些机器上 运行s Fiddler 是否 运行ning,但在其他机器上它只会 运行 当 Fiddler 运行ning 时。 Fiddler 甚至不必为其捕获流量 运行.
请求发送到 https 站点。
代码如下所示:
Set xhr = CreateObject("WinHttp.WinHttpRequest.5.1")
xhr.open "POST", sUrl, bAsync
xhr.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xhr.setRequestHeader "Content-Length", Len(sBody)
xhr.send sBody
我已阅读 Telerik 文章,Help! Running Fiddler Fixes My App???,但 none 的建议解决方案似乎有效。
谁能告诉我可能出了什么问题或我该如何解决这个问题?
将代理设置为 HTTPREQUEST_PROXYSETTING_DIRECT 解决了问题。
' Important Note: The setProxy setting of 1 corresponds to HTTPREQUEST_PROXYSETTING_DIRECT
' (see https://msdn.microsoft.com/en-us/library/windows/desktop/aa384059(v=vs.85).aspx)
' Without this, the app would only work on the dev machine when Telerik Fiddler was also
' running. Oddly, the app would run correctly on all other machines.
Set xhr = getRequestObject()
xhr.setProxy 1
xhr.open "POST", sUrl, bAsync
xhr.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xhr.setRequestHeader "Content-Length", Len(sBody)
上面引用的 Microsoft 文章给出了 Proxy 可以设置的常量的三个值。我不明白为什么 "Direct" 设置有效,但确实有效。
感谢 Jeandey 和其他看过此内容的人。
您能检查一下您的 WinHttpSettings
注册表项设置吗?
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet
Settings\Connections\WinHttpSettings
默认值(无代理)是
我想 Fiddler
修改了此配置以充当代理。
如果 Fiddler
不是 运行 => 没有代理 => 连接错误。
在WinHttpRequest
中,如果没有显式调用setProxy
=> HTTPREQUEST_PROXYSETTING_DEFAULT
=> HTTPREQUEST_PROXYSETTING_PRECONFIG
HTTPREQUEST_PROXYSETTING_PRECONFIG
Indicates that the proxy settings should be obtained from the
registry.
我有一个 VB6 应用程序,在特定条件下只有 运行s。当它失败时(在下面的发送语句中),它会生成一个
运行-时间错误'-2147012867 (80072efd)': 无法建立与服务器的连接
有趣的是,当 Fiddler 运行ning 时,它总是 运行s。在某些机器上 运行s Fiddler 是否 运行ning,但在其他机器上它只会 运行 当 Fiddler 运行ning 时。 Fiddler 甚至不必为其捕获流量 运行.
请求发送到 https 站点。
代码如下所示:
Set xhr = CreateObject("WinHttp.WinHttpRequest.5.1")
xhr.open "POST", sUrl, bAsync
xhr.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xhr.setRequestHeader "Content-Length", Len(sBody)
xhr.send sBody
我已阅读 Telerik 文章,Help! Running Fiddler Fixes My App???,但 none 的建议解决方案似乎有效。
谁能告诉我可能出了什么问题或我该如何解决这个问题?
将代理设置为 HTTPREQUEST_PROXYSETTING_DIRECT 解决了问题。
' Important Note: The setProxy setting of 1 corresponds to HTTPREQUEST_PROXYSETTING_DIRECT
' (see https://msdn.microsoft.com/en-us/library/windows/desktop/aa384059(v=vs.85).aspx)
' Without this, the app would only work on the dev machine when Telerik Fiddler was also
' running. Oddly, the app would run correctly on all other machines.
Set xhr = getRequestObject()
xhr.setProxy 1
xhr.open "POST", sUrl, bAsync
xhr.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xhr.setRequestHeader "Content-Length", Len(sBody)
上面引用的 Microsoft 文章给出了 Proxy 可以设置的常量的三个值。我不明白为什么 "Direct" 设置有效,但确实有效。
感谢 Jeandey 和其他看过此内容的人。
您能检查一下您的 WinHttpSettings
注册表项设置吗?
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\WinHttpSettings
默认值(无代理)是
我想 Fiddler
修改了此配置以充当代理。
如果 Fiddler
不是 运行 => 没有代理 => 连接错误。
在WinHttpRequest
中,如果没有显式调用setProxy
=> HTTPREQUEST_PROXYSETTING_DEFAULT
=> HTTPREQUEST_PROXYSETTING_PRECONFIG
HTTPREQUEST_PROXYSETTING_PRECONFIG
Indicates that the proxy settings should be obtained from the registry.