2013-02-26 85 views
1

我從老闆那裏得到了一個原始的wsdl文件,並要求我根據它創建一個虛擬Web服務。然後創建一個客戶端,通過使用從虛擬Web服務生成的新wsdl文件來測試它,並且它需要與原始wsdl完全相同。不幸的是,我發現由虛擬Web服務生成的新的wsdl與原始的不同。任何人都能告訴我爲什麼?如何獲得與原始版本相同的wsdl?謝謝!WCF生成wsdl與提供用於創建WCF服務的原始wsdl不同?

我所做的這個任務:

  1. SvcUtil.exe /sc original.wsdl - >獲得C#服務類並實現它的具體類(虛擬網絡服務)
  2. svcutil /t:metadata 'http://localhost/myservice/test.svc?singlewsdl' - >來獲得新的從運行虛擬網絡服務的WSDL,但它會不同從原來的一個
  3. WSDLImp.exe創建代理類德爾福客戶(測試客戶端)
+0

你能解釋「不同」嗎?有什麼區別? – nvoigt 2013-02-26 06:29:21

回答

1

情況總是如此。您正在比較兩種不同的WSDL。一種是虛擬WSDL與您的客戶分享,並用於使用SvcUtil生成服務。一旦部署了Web服務並查看它共享的WSDL,您現在就擁有了一個具體的WSDL。

最好的做法是讓您通過基於虛擬WSDL進行服務調用來測試您的新服務,因爲這是您可能在客戶端共享的WSDL。 SoaupUI能夠基於您的虛擬WSDL生成和執行測試。

+0

感謝您的回答。 :-)我可以使用原始的wsdl來生成客戶端來測試虛擬web服務,並且它是成功的。另外,我可以使用虛擬web服務生成的新wsdl來測試虛擬web服務,並且它也是成功的。唯一不同的是,如果我在這兩個不同的wsdl文件之間進行調整,我需要更改一些客戶端代碼。因爲它們在生成時具有不同的代理類類型。 – 2013-02-26 07:24:05

+0

正確。爲了不增加你的工作量,你只需要擔心使用虛擬WSDL測試你的新服務,因爲這是最重要的測試。 – EtherDragon 2013-02-26 07:26:03

+0

沒錯。謝了哥們! – 2013-02-26 23:10:54