【问题标题】:ASMX: What should tempuri.org be replaced with?ASMX: tempuri.org 应该用什么替换?
【发布时间】:2011-01-25 01:19:57
【问题描述】:

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

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

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

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

【问题讨论】:

标签: visual-studio web-services namespaces asmx


【解决方案1】:

这有点讽刺,但最好的答案是:http://tempuri.org/

报价

每个 XML Web 服务都需要一个唯一的名称空间,以便客户端应用程序将其与 Web 上的其他服务区分开来。默认情况下,ASP.Net Web 服务为此使用http://tempuri.org/。虽然这适用于正在开发的 XML Web 服务,但已发布的服务应使用唯一的永久命名空间。

您的 XML Web 服务应该是 由您指定的命名空间标识 控制。例如,您可以使用 贵公司的互联网域名为 命名空间的一部分。虽然很多 命名空间看起来像 URL,它们需要 不指向实际资源 网络。

对于使用 XML Web Services 创建的 ASP.NET,默认命名空间可以是 使用 WebService 更改 属性的命名空间属性。这 WebService 属性应用于 包含 XML Web 的类 服务方法。下面是一个代码 将命名空间设置为的示例 "http://microsoft.com/webservices/":

C#
[WebService(Namespace="http://microsoft.com/webservices/")]
public class MyWebService {
    // implementation
}

【讨论】:

  • +1 并接受了答案 - 大声笑 - 请原谅我的幽默,但是如果您的公司太穷,买不起域名怎么办? :) JK
  • 有没有办法完全省略?当尝试使用 XML 类与 AS3 一起使用它时 - 您必须将命名空间附加到所有内容,如下所述:actionscript.org/forums/showthread.php3?t=184708,这很烦人......
  • 好的,如果你在 asmx.cs 文件中做 [WebService(Namespace = null)] 就省略了...(对于任何想知道的人...)
  • 我很抱歉,但过了一天(在它工作的地方) - 它抛出了一个“不能为 NULL”的异常。
【解决方案2】:

以开发人员的身份输入您的域;)

它基本上用作模式的资源标识符。但它似乎除了成为“标准的一部分”之外没有任何实际用途。

【讨论】:

    【解决方案3】:

    http://tempuri.org 是“XML 命名空间”的一个示例。在这种情况下,它恰好是 Web 页面的位置,但一般来说,XML 命名空间只是 URI 形式的文本字符串。

    XML 名称空间的目的是使 XML 节点的名称唯一。典型示例是确保您的 Book 元素和另一个服务的 Book 元素属于两种不同的类型,并且不会相互冲突。如果可能的话,这就是使用您公司的域名作为命名空间一部分的原因。您公司的域名将是唯一的。假设您可以控制使用您公司域名的所有命名空间,因此您的公司可以确保在公司内部没有冲突 - 域名的唯一性确保域之间没有冲突名字。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-29
      • 1970-01-01
      • 2013-08-21
      相关资源
      最近更新 更多