【问题标题】:How can I access an ASP.Net 2.0 web service using VB Script?如何使用 VB 脚本访问 ASP.Net 2.0 Web 服务?
【发布时间】:2010-03-24 05:09:53
【问题描述】:

我正在尝试找到一种方法来从在 wscript.exe 下运行的 VB 脚本 .vbs 文件访问 Web 服务。我从 Microsoft 提取了一些示例代码并将其修改为使用 SOAP 3.0 工具包,但它给了我一个错误。

Dim SOAPClient
Set SOAPClient = createobject("MSSOAP.SOAPClient30")
SOAPClient.mssoapinit("https://www.domain.com/Folder/Service.asmx?WSDL")

在最后一行我收到一条错误消息:

WSDLReader:在默认 WSDL 命名空间中找不到“/definitions” HRESULT=0x80004005:未指定的错误 - WSDLReader:加载 WSDL 文件失败 HRESULT=0x80004005:未指定的错误 - 客户:提供的参数之一无效。 HRESULT=0x80070057:参数不正确。

它需要在 VB 脚本中的原因是因为它将用于我无法控制的程序中,并且该程序仅支持 VB 脚本。有没有办法让 VB 脚本能够解析更新的 WSDL 文件?

虽然不是我自己编写的,但我确实有 Web 服务的源代码。我可以在 Web 服务中进行更改以使其架构与 SOAP 工具包 3.0 兼容吗?我可以毫无问题地从 .Net 应用程序使用此 Web 服务。

【问题讨论】:

    标签: asp.net web-services soap vbscript asmx


    【解决方案1】:

    为什么不编写一个托管组件来使用您的脚本可能使用的 Web 服务和 expose it as COM component

    【讨论】:

    • 只是因为这应该是解决问题的快速解决方案,而不是主要的开发工作。我同意这是一个可行的解决方法。我知道这不会花费太长时间,但是编写一个快速的 vb 脚本需要更长的时间。如果我们无法让脚本与 Web 服务一起工作,那么我会看看我的客户是否希望我花时间为脚本编写一个“桥梁”以供使用。
    【解决方案2】:

    检查您的服务的 web.config 的 <webServices><protocols> 部分,看看它是否支持 SOAP 1.1 或 1.2。 SOAP Toolkit 早于 SOAP 1.2,可能无法理解。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多