2012-08-05 217 views
2

這裏是新手。不確定如何提問,更不用說使用正確的術語。這是我第一次使用服務器,webservices和WCF。我在VB.net中完成了這一切。WCF使用網絡服務

我負責編寫從客戶端接收短信響應的服務器。客戶端提供了一個asmx webservice(我認爲)。

我有一臺服務器運行,用WCF實現,我認爲它已經正確設置並等待它收到某種消息,但它從來沒有這樣做過。

然後我開始做更多的研究,發現WCF有一些遺留代碼,可以讓你使用webservices(httpbinding我相信)。

我該如何實現這一點?

+0

我很抱歉,但這確實太含糊。你不能只寫一個WCF服務並等待它接收消息。如果您想接收來自客戶端Web服務的消息,則必須獲取其地址並從元數據中生成客戶端。然後你可以發送消息給它,也許可以請求它接收到的短消息,但是它的工作原理應該在你的客戶端必須能夠提供的某種類型的手冊中描述。 – CodeCaster 2012-08-05 21:52:31

+0

就像我說的這對我來說都是第一次。 客戶端提供了一個WSDL(使用來自可視工作室的WSDL.exe),它爲我提供了所有的元數據,IP地址,函數聲明等等。我給了他們我的服務器的IP,以便它們可以連接。 他們的文檔非常含糊,沒有提及它使用web服務還是WCF。 – GoodBoyNYC 2012-08-05 23:02:06

+1

我認爲你應該嘗試發送一條消息到服務器,看看最先發生什麼。提供給你的wsdl是你從客戶端開始工作的世界。試着打電話給他們的服務,看看發生了什麼。如果您遇到錯誤。在這裏發佈錯誤,我們將從那裏看到。老實說,你寫的描述讓我很難找出你的問題。 – Tabish 2012-08-06 18:44:31

回答

1

這是一個有點不清楚你想在這個時候完成什麼,但我會盡我所能幫助你指導你想要完成什麼。

調用第三方端點

如果你只是想消耗第三方Web服務,那麼你可以使用SvcUtil工具(或在Visual Studio中添加服務引用)來生成代理類連接到第三派對。 WSDL.exe自.NET Framework 1.1開始出現,而svcutil.exe在.NET 3.5中出現。兩者之間的主要區別是svcutil.exe支持wsdl.exe不支持的功能(例如WS-RM)。

如果最終目標只是使用第三方服務而不是svcutil.exe,或者在Visual Studio中使用「添加服務引用」選項,將會執行您需要的所有操作。它使用作爲WCF一部分創建的類的事實並不重要。

定義第三方端點調用

如果第三方需要向您發送數據,而數據需要實時(未成批),那麼WCF是當今最佳的解決方案之一,被髮送如果您使用.NET語言進行編程(您也可以使用ASMX服務,創建http處理程序等)。如果這是實際需求,那麼他們提供的WSDL可能是他們希望創建的端點(他們想要使用的合同)的規範。這是此時可能採取的步驟示例:

  1. 根據提供的WSDL創建服務合同。
  2. 創建一個實施步驟1中的合同的類。
  3. 使用適當的測試數據自己部署和測試服務。
  4. 測試您可以使用外部Internet連接的端點(1)(2)
  5. 讓客戶端知道他們的端點已準備好供它們測試。

希望這給你一個你應該考慮什麼和你的下一步將是什麼高層次的概述。

(1)如果它是一個客戶端,是組織內部的比測試僅需要從withing您的內部網絡

(2)如果客戶是組織外部,您將需要研究有關WCF安全。你不希望任何人都能夠擊中你的端點。

+0

謝謝。我將研究WCF安全性。現在我甚至不能確定我的WCF/Server的實現是否正常工作,因爲我們的客戶還沒有回到我們。我已經使用測試客戶端測試了服務器,我寫了一些會消耗我的WCF並且工作正常的測試客戶端。現在只需等待:S – GoodBoyNYC 2012-08-09 13:48:48

+0

另外,當我完成我的第一個WCF項目時,幫助我獲得最多的參考資料是Michele Leroux Bustamante的Learning WCF一書。 O'Reilly網站通過Google預覽按鈕提供了本書的一部分,以便您瞭解它對您是否有用。只有潛在的負面影響是我不記得他們是否有VB.NET的樣本,但如果你閱讀本書,你將對WCF的結構,結構的理解以及如何構建最好地使用它。 – 2012-08-09 14:08:39