2009-09-03 32 views
0

我有一個相對較小的問題。 我正在開發和我的應用程序和第三方程序之間的接口。它們之間的通信由SOAP webservices完成。他們爲我提供了他們將用來接收和發送數據的wsdl。我使用wsdl.exe工具創建了服務界面和客戶端,並且在生成代碼時沒有錯誤或警告。生成的SOAP服務接口不在正確的名稱空間中

問題來自生成的代碼名稱空間。它不使用界面中定義的那個,而是使用tempuri.org。 好了,沒什麼大不了的,我可以定義在

[ServiceContract (Namespace = "theDesiredNamespace")] 

問題的命名空間是我想從

http://theDesiredNamespace/myMethod 

提供給我的web服務方法的訪問,而是我的服務在提供它:

http://theDesiredNamespace/nameOfTheInterface/myMethod 

其中nameOfTheInterface是由wsdl工具自動生成的接口的名稱。

任何關於我如何處理這個問題的建議?我知道最簡單的解決方案是實際將我的新wsdl版本發送給第三方(因爲它應該完成),但我沒有真正的選擇。

有沒有解決這個問題的方法?

回答

0
  1. WSDL.EXE適用於傳統的ASMX Web服務,不適用於WCF(當您使用[ServiceContract]時,您正在使用這種服務)。
  2. 雖然它看起來像一個URL,但XML名稱空間與網絡上的位置無關。你想要使用像http://www.company.com/webservices/applicationName/serviceName/這樣的單個命名空間。然後,您可以通過您喜歡的任何網址訪問您的服務。 XML名稱空間和服務的URL之間沒有關係。
+0

謝謝你的回答,雖然我仍然錯過了一些東西。 我同意wsdl如果對ASMX Web服務,而不是Wcf,但我如何生成我的服務器接口代碼呢? 然後,我也明白了xml名稱空間和我可以訪問的url之間的區別,但是我按照我想要的方式加載了設置此url的fiddiculties。它會自動添加一些接口名稱,而不需要進入。我已經在[ServiceContract]中設置了URL中使用的名稱空間,但仍然在該名稱和我的方法名稱之間添加了接口名稱 – srodriguez 2009-09-03 04:29:12

+1

使用svcutil.exe命令。 – 2009-09-03 04:33:44

相關問題