您使用visual studio创建的每个新Web服务都带有一个预定义的命名空间,如下所示:
[WebService(Namespace = "http://tempuri.org/")]
我的网络服务将在不同的客户端和不同的域上运行,因此我在开发过程中不知道域名,我也不想编辑此文件,每次部署到一个新的客户。
Namespace的值究竟应该是什么?它看起来像一个网址,但这对我来说没有意义。
答案 0 :(得分:12)
这有点讽刺,但最好的答案是:http://tempuri.org/
引用
每个XML Web Service都需要一个唯一的命名空间,以便客户端应用程序将其与Web上的其他服务区分开来。默认情况下,ASP.Net Web服务使用http://tempuri.org/来实现此目的。虽然这适用于正在开发的XML Web服务,但已发布的服务应使用唯一的永久命名空间。
您的XML Web服务应该是 由您指定的命名空间标识 控制。例如,您可以使用 贵公司的互联网域名为 命名空间的一部分。虽然很多 名称空间看起来像URL,他们需要 没有指向实际的资源 网络
使用创建XML Web Services ASP.NET,默认命名空间即可 使用WebService进行了更改 attribute的Namespace属性。该 WebService属性应用于 包含XML Web的类 服务方式。下面是一个代码 将命名空间设置为的示例 “http://microsoft.com/webservices/”:
C#
[WebService(Namespace="http://microsoft.com/webservices/")]
public class MyWebService {
// implementation
}
答案 1 :(得分:3)
作为开发人员加入您的域名;)
它基本上用作schemata的资源标识符。但它似乎没有实际用途,只不过是“标准的一部分”。
答案 2 :(得分:3)
http://tempuri.org
是“XML命名空间”的示例。在这种情况下,它恰好是Web上页面的位置,但通常,XML Namespace只是URI形式的文本字符串。
XML命名空间的目的是使XML节点的名称唯一。规范示例是确保您的Book
元素和另一个服务的Book
元素具有两种不同的类型,并且不会相互冲突。如果可能的话,这就是将公司的域名用作命名空间的一部分的原因。您公司的域名将是唯一的。据推测,您可以控制使用公司域名的所有命名空间,因此您的公司可以确保在公司内部没有冲突 - 域名的唯一性确保域之间不存在冲突名。