为什么VB脚本调用WCF仅在Fiddler运行时才有效

时间:2015-01-06 03:41:52

标签: wcf vbscript wsdl fiddler soap-client

我有这种奇怪的行为,我无法弄清楚。我有一个非常简单的VB脚本使用SoapClient并与WCF端点进行通信。请参阅下文。

Dim oPPWS As Object
Set oPPWS = CreateObject("MSSOAP.SoapClient30")

Const URL = "http://localhost:57660/Service1.svc?wsdl"
oPPWS.MSSoapInit URL

Dim strResp As String
strResp = oPPWS.GetData()

Fiddler正在运行时,此代码完美地“”。否则我在oPPWS.MSSoapInit URL上得到以下错误

  

“WSDLReader:XML解析器在linenumber 0,lineposition 0失败,原因   是:指定资源的下载失败。 HRESULT =为0x1:   功能不正确。     - WSDLReader:加载WSDL文件失败HRESULT = 0x80070057:参数不正确。“

我认为Fiddler充当WCF调用的代理,并以某种方式连接到服务。 但我只是不知道/无法解释为什么。谁看过这个吗?还有一种方法可以让这些代码在没有这种行为的情况下工作吗?

我也在Windows 8上运行。

感谢。

1 个答案:

答案 0 :(得分:0)

最后想出来。 这是我的IE代理设置导致它无法工作。一旦我关闭IE代理设置,无论是否打开Fiddler,上述脚本都可以正常工作。 我认为Fiddler忽略了IE代理设置?可能是,但我不知道。

我发现此问题的方法是使用Wireshark 它显示请求失败,因为代理访问标识被拒绝

无所事事地花了几个小时,希望这会为别人节省时间:)。