2010-03-08 64 views
5

您使用Visual Studio創建的每個新的Web服務帶有一個預定義的命名空間是這樣的:ASMX:tempuri.org應該替換爲什麼?

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

我的Web服務將在不同的客戶端運行,並在不同的領域,所以因爲這個我不知道域在開發期間,我也不想編輯這個文件,每次我部署到一個新的客戶端。

命名空間的值應該是什麼?這看起來像一個網址,但這對我來說沒有意義。

+0

[什麼是tempuri.org?](http://stackoverflow。問題/ 180985/what-is-tempuri-org) – Fowl 2017-03-21 06:30:51

回答

12

這是一種諷刺,但最好的答案是下:http://tempuri.org/

報價

每個XML Web服務的需求,以獨特的命名空間的客戶端應用程序從Web上的其他服務區分開。默認情況下,ASP.Net Web Services爲此使用http://tempuri.org/。雖然這適合開發中的XML Web服務,但發佈的服務應該使用唯一的永久名稱空間。

您的XML Web Service應該由 標識,您的名稱空間由您控制。例如,您可以使用您公司的互聯網域名 作爲 命名空間的一部分。雖然許多 名稱空間看起來像URL,但他們需要 不指向 Web上的實際資源。

對於XML Web服務使用ASP.NET 創建,默認的命名空間可 使用WebService 特性的Namespace屬性更改。 WebService屬性應用於包含XML Web 服務方法的 類。下面是一個代碼 例子命名空間設置爲 「http://microsoft.com/webservices/」:

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

+1並接受答案 - 哈哈 - 原諒幽默,但如果你的公司太窮而無力承擔域名呢? :) JK – 2010-03-08 16:25:22

+0

有沒有辦法完全省略它?當試圖用AS3使用XML類來使用它時 - 你必須將命名空間附加到所有東西上,如下所述:http://www.actionscript.org/forums/showthread.php3?t=184708,這很煩人.. – 2012-05-21 00:24:45

+0

好吧,如果你在asmx.cs文件中做了[WebService(Namespace = null)],它就被省略了... (對於任何想知道的人...) – 2012-05-21 00:33:48

3

把你的域名,如開發商)

它基本上是作爲資源標識符,以圖式。但它似乎沒有真正的用途,除非是「標準的一部分」。

+0

我是否需要http://位 - 或者我可以將它命名爲什麼? – 2010-03-08 16:21:22

3

http://tempuri.org是一個‘XML命名空間’的一個例子。在這種情況下,它恰好是Web上頁面的位置,但通常,XML Namespace只是URI形式的文本字符串。

XML名稱空間是爲了使XML節點的名稱唯一。規範的例子是確保您的Book元素和另一個服務的Book元素是兩種不同的類型,並且不會相互衝突。如果可能的話,這就是使用公司的域名作爲命名空間的一部分的原因。您公司的域名將是唯一的。據推測,你掌握了所有使用你公司域名的域名空間,所以你的公司可以確保內部沒有衝突- 域名的唯一性確保了域名之間沒有衝突。

相關問題