0

我有一个相对较小的问题。我正在开发我的应用程序和第三方程序之间的接口。它们之间的通信是通过 SOAP Web 服务进行的。他们为我提供了他们将用来接收和发送数据的 wsdl。我已经用wsdl.exe工具创建了服务接口和客户端,生成时没有任何错误或警告。

问题来自生成的代码命名空间。它没有使用接口中定义的那个,而是使用 tempuri.org 的那个。好的,没什么大不了的,我可以在

[ServiceContract (Namespace = "theDesiredNamespace")]

问题是我想从

http://theDesiredNamespace/myMethod

相反,我的服务在以下位置提供:

http://theDesiredNamespace/nameOfTheInterface/myMethod

其中 nameOfTheInterface 是 wsdl 工具自动生成的接口的名称。

关于我如何处理这个问题的任何建议?我知道最简单的解决方案是将我的新 wsdl 版本实际发送给第三方(应该这样做),但我真的别无选择。

这个问题有什么解决方法吗?

4

1 回答 1

0
  1. WSDL.EXE 用于传统的 ASMX Web 服务,而不是用于 WCF(这是您在使用时使用的[ServiceContract])。
  2. 尽管它可能看起来像一个 URL,但 XML 命名空间与 Web 上的位置无关。您使用单个命名空间,例如http://www.company.com/webservices/applicationName/serviceName/. 然后,您可以通过您喜欢的任何 URL 访问您的服务。XML 命名空间与服务的 URL 之间没有关系。
于 2009-09-03T04:10:23.737 回答