【问题标题】:Why VB Script call to WCF works only when Fiddler is running为什么对 WCF 的 VB 脚本调用仅在 Fiddler 运行时有效
【发布时间】:2015-01-06 03:41:52
【问题描述】:

我有这种奇怪的行为,我就是想不通。我有一个非常简单的使用 SoapClient 的 VB 脚本并与 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 Parser 在第 0 行失败,第 0 行位置,原因 is:指定资源下载失败。 HRESULT=0x1: 功能不正确。 - WSDLReader: WSDL 文件加载失败 HRESULT=0x80070057: 参数不正确。"

我认为 Fiddler 充当 WCF 调用的代理并使其以某种方式连接到服务。 但我只是不知道/无法准确解释原因。有没有人见过这个?还有没有办法让这段代码在没有这种行为的情况下工作?

我也在 Windows 8 上运行。

谢谢。

【问题讨论】:

    标签: wcf vbscript wsdl fiddler soap-client


    【解决方案1】:

    终于弄明白了。 这是我的 IE 代理设置导致它无法工作。一旦我关闭了 IE 代理设置,无论是否打开了 Fiddler,上面的脚本都可以工作。 我认为 Fiddler 忽略了 IE 代理设置?可能是,但我不知道。

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

    白费了几个小时,希望这会为其他人节省时间:)

    【讨论】:

    • Fiddler 启动时采用系统的代理设置。如果这些设置是虚假的并指向不存在的代理,系统设置将被忽略,并在 Fiddler 的Log 选项卡上进行注释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-26
    • 1970-01-01
    • 1970-01-01
    • 2013-03-22
    • 1970-01-01
    相关资源
    最近更新 更多