【问题标题】:WCF fails to import WSDLWCF 无法导入 WSDL
【发布时间】:2015-01-02 19:35:15
【问题描述】:

我正在尝试使用 WCF 将服务引用“添加”到以下 wsdl:https://se-face-webservice.redsara.es/sspp?wsdl

Visual Studio 未提供任何警告,但 reference.cs 为空且未进行序列化。

我已经尝试删除“在指定引用的程序集中重用类型”,但是序列化仍然失败。

如果我尝试使用 WcfTestClient 添加服务,它会给出错误提示:'http://schemas.xmlsoap.org/soap/encoding/Array' 未定义。

最后,当我通过“添加 Web 引用”添加 wsdl 时,就会发生序列化。我猜可能该服务正在使用“未知”绑定到 WCF。

这种情况有解决办法吗?

PS:如果我使用 SoapUI 生成客户端一切正常。

【问题讨论】:

    标签: wcf serialization wsdl


    【解决方案1】:

    您的 WSDL 有问题。它定义了前缀soap-enc,但没有定义定义它的模式。 WSDL 假设 http://schemas.xmlsoap.org/soap/encoding/ 架构是自动定义的。

    也许这项服务是建立在旧版本的 Axis 之上的?我看到那个版本假设消费者也是建立在 Axis 上的。

    【讨论】:

    • 该服务属于西班牙税务局。我正在尝试建立一个客户端。 WCF 是否可以与旧版本的 Axis 一起工作?我真的很想测试这种可能性。
    • 抱歉,我不知道有什么办法。
    【解决方案2】:

    我已经尝试过使用 System.Web.Services 生成 Web 服务引用的好旧 wsdl.exe 并且似乎可以正常工作 - 至少生成和编译 :-)

    你能检查一下吗?链接到 bitbucket 上的项目。只是带有引用和生成程序集的简单控制台应用程序。

    https://bitbucket.org/polacekpavel/servicestack_27747564/src

    还有一个有趣的生成代理类https://bitbucket.org/polacekpavel/servicestack_27747564/src/c43b90221fae7ceb2e234552b9f57034551b3cbf/SSPPWebServiceProxyService.cs?at=master

    【讨论】:

    • Wsdl.exe 和做一个 Web 服务引用是一样的吧? Wcf 客户端服务应该由 svcutils.exe 生成,但是那个不起作用:(。无论如何非常感谢你,我要试一试。
    • 是的,与 svcutil.exe “相同”,但使用旧的 System.Web.Service 命名空间,但不要担心给 Axis 的消息会相同。当您不选择“添加服务引用”而是使用“添加 Web 引用”时,将使用 Wsld.exe。您可以在添加服务参考的高级窗口中选择它。是的,有点混乱 - 更多信息msdn.microsoft.com/en-us/library/bb628649.aspx
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多