生成的SOAP服务接口不在正确的命名空间中

时间:2009-09-03 03:46:46

标签: c# web-services xml-namespaces

我的问题比较小。 我正在开发我的应用程序和第三方程序之间的接口。它们之间的通信是由SOAP webservices进行的。他们为我提供了他们将用于接收和发送数据的wsdl。我使用wsdl.exe工具创建了服务接口和客户端,并且在生成时没有错误或警告。

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

中定义命名空间
[ServiceContract (Namespace = "theDesiredNamespace")]

问题是我想从

提供对我的webservice方法的访问
http://theDesiredNamespace/myMethod

而我的服务提供它:

http://theDesiredNamespace/nameOfTheInterface/myMethod

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

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

这个问题有解决办法吗?

1 个答案:

答案 0 :(得分:0)

  1. WSDL.EXE适用于旧版ASMX Web服务,不适用于WCF(使用[ServiceContract]时使用的内容)。
  2. 虽然它可能看起来像一个URL,但XML命名空间与Web上的位置无关。您希望使用单个命名空间,例如http://www.company.com/webservices/applicationName/serviceName/。然后,您可以通过任何您喜欢的URL访问您的服务。 XML Namespace与服务的URL之间没有关系。