我不明白为什么需要使用命名空间唯一地标识Web服务

时间:2010-11-07 19:10:43

标签: xml wcf

  

每个XML Web Service都需要一个唯一的   命名空间以便客户端   用于区分它的应用程序   网上的其他服务。通过   默认情况下,ASP.Net Web Services使用   为此目的http://tempuri.org/。   虽然这适用于XML Web   正在开发的服务,已发布   服务应该使用独特的,   永久命名空间您的XML Web   服务应由a确定   您控制的命名空间。对于   例如,您可以使用您公司的   互联网域名作为一部分   命名空间。虽然很多名称空间   看起来像URL,他们不需要指向   网上的实际资源。

我理解XML命名空间有助于我们唯一地识别XML Schema定义的词汇表。但我不明白为什么还需要使用命名空间来唯一地识别Web服务?!

即,要使客户能够与服务进行通信,它需要知道服务的地址,绑定和合同,就是这样。那么为什么使用相同命名空间的两个不同服务会导致客户尝试使用这两个服务时遇到任何问题呢?

2 个答案:

答案 0 :(得分:4)

  

我理解Xml命名空间有帮助   我们唯一地识别词汇表   由Xml Schemas定义。但我没有   了解为什么还需要Web服务   使用命名空间唯一标识?!

出于同样的原因。唯一标识服务。

服务可以有多个端点。如果两个端点运行相同的服务,则命名空间可帮助您识别它们是同一服务的实现。

唯一的服务命名空间也可用于指示特定服务的版本。

答案 1 :(得分:2)

您基本上是正确的:每个服务都有一个命名空间,因此如果您知道WSDL的URL(或者如果您有它的副本),则命名空间不是特别有用。但是,命名空间是永久性的,而WSDL则不是。在查找服务的WSDL位置的服务中 - 例如UDDI服务器 - 命名空间是一种知道您真正在谈论您感兴趣的服务的方式。

与往常一样,我们使用名称空间作为抽象层,因此我们不依赖于WSDL(或更糟糕的是,端点')位置来了解我们正在谈论的服务。

也就是说,命名空间在我们的大多数WS使用中确实没有太大的区别,因为我们使用WSDL的物理位置来确定服务的位置。你可以使用天普,但人们会笑,虽然笑话真的在他们身上。