2

我是一名 Java 开发人员,他创建了一个相当大的 Web 服务,可以很好地与 Java 客户端或其他工具(Soap UI)配合使用。

我们的一位客户想要为 Web 服务编写一个 .NET 客户端,并使用 VS2010 的“添加服务引用”功能。根据客户的说法,这不起作用,因为我们的 WSDL 和 XSD 文件使用本文中定义的“禁止的 XML 构造” :

问题是我们在 WSDL 中大量使用了 xsd:attribute 数据。

所以问题是:是否有一种解决方法可以使 .NET 存根生成代码与包含 xsd:attribute 的 WSDL/XSD 文件兼容?是否有另一个支持此功能的 Web 服务 .NET 库?

我的另一个问题是,为什么微软首先要施加这些限制?为什么 xsd:attribute 是 Web 服务中的禁止结构???有什么线索吗?

可能相关:C#.NET Generate web service reference using WSDL (from XML schema) 问题

4

3 回答 3

0

如果您可以访问带有.NET Framework的机器,为什么不使用 svcutil 为他生成代理/配置设置并将其发送给他?

访问 www.svcutil.com了解可供您使用的开关和选项列表

我发现,如果客户不能以一种方式做到这一点,而您提供了一种记录在案的(可能是自动化的)做事方式,那么这通常就足够了。

于 2012-07-24T14:25:55.700 回答
0

我已经用.NET 版本的 Remobjects (http://www.remobjects.com) 测试了链接中提供的 HelloWorld.wsdl,它似乎工作正常。我没有实际的服务来对此进行测试,但我建议您(或客户 :))下载并试一试。

.NET 版本可以在这里找到:

http://www.remobjects.com/ro/net.aspx

于 2012-07-24T15:18:36.087 回答
0

显然,答案是您不应该使用现代方式通过svcutil.exe生成存根,而应使用旧方式和wsdl.exe

使用 wsdl.exe 从命令行创建存根工作正常。生成的代码按预期工作,.NET 客户端连接到 Axis2 Web 服务。

于 2012-08-03T15:18:44.890 回答