ASMX:tempuri.org应该被替换为什么?

时间:2010-03-08 16:17:02

标签: visual-studio web-services namespaces asmx

您使用visual studio创建的每个新Web服务都带有一个预定义的命名空间,如下所示:

[WebService(Namespace = "http://tempuri.org/")]

我的网络服务将在不同的客户端和不同的域上运行,因此我在开发过程中不知道域名,我也不想编辑此文件,每次部署到一个新的客户。

Namespace的值究竟应该是什么?它看起来像一个网址,但这对我来说没有意义。

3 个答案:

答案 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元素具有两种不同的类型,并且不会相互冲突。如果可能的话,这就是将公司的域名用作命名空间的一部分的原因。您公司的域名将是唯一的。据推测,您可以控制使用公司域名的所有命名空间,因此您的公司可以确保公司内部没有冲突 - 域名的唯一性确保域之间不存在冲突名。