簡體   English   中英

“反向”WCF服務(從客戶端定義構建服務器)

[英]“Reverse” WCF Service (Building a server from a client definition)

.Net提供了一些很好的機制來定義遠程服務,然后“自動”創建一個客戶端連接到它,隱藏了大量令人討厭的布線和大驚小怪。 但另一種方式是否有類似的路線?

我最近的工作任務是創建一系列服務,這些服務將通過身份驗證和搜索查詢等方式相互通信。 一個要求是我們的核心服務能夠呼叫其他“服務節點”,這些節點可能在內部創建,也可能不在內部創建,但都需要實現通用接口。 我可以構建此服務的引用實現,從中創建WSDL,並自動生成客戶端而不會出現問題。 然而,似乎定義服務的唯一方法是基本上將某人指向我創建的WSDL並說“實現看起來像那樣的東西”。 看到WSDL很少被設計為人類閱讀,這條路線似乎不那么有吸引力。

那么有一種我不知道從WSDL或類似描述符生成服務接口的方法嗎? 主要在這里查看.NET 3.5,使用C#和WCF。 謝謝!

是的 ,您絕對可以從WSDL文件創建WCF服務合同(接口):使用svcutil.exe

如果您有一個描述客戶端想要調用的方法的WSDL,還有一個XSD(XML Schema),它描述了它希望發送和接收的數據元素,您可以從中創建服務。 這被稱為構建WCF服務的“契約優先”方法,並且在具有互操作性要求的環境(如Java客戶端和.NET服務,反之亦然)中相當普遍。

使用svcutil.exe ,您可以生成服務接口類 - 您的服務描述。 這將包含服務合同,運營合同和數據合同。

svcutil yourMethods.wsdl yourDataSchema.xsd /language:C# /out:YourServiceInterface.cs
(or /language:VB, if you prefer VB.NET)

這將創建一個YourServiceInterface.cs (或YourServiceInterface.vb )文件,該文件是服務器代碼的基礎。

然后,您可以創建一個實際的服務實現 - 實現真正工作的服務類。

最后但並非最不重要的是,您需要決定如何托管您的服務 - 在IIS中或自托管在控制台應用程序或NT服務或其他方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM