日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WCF 之旅——1

發布時間:2025/6/17 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WCF 之旅——1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.什么是WCF?

?????? 根據微軟官方的解釋,WCF(之前的版本名為“Indigo”)是使用托管代碼建立和運行面向服務(Service Oriented)應用程序的統一框架。它使得開發者能夠建立一個跨平臺的安全、可信賴、事務性的解決方案,且能與已有系統兼容協作。WCF是微軟分布式應用程序開發的集大成者,它整合了.Net平臺下所有的和分布式系統有關的技術,例如.Net Remoting、ASMX、WSE和MSMQ。

?????? WCF是微軟重點介紹的產品,因此也推出了專門的官方網站(http://windowscommunication.net),該網站有最新的WCF新聞發布,以及介紹WCF的技術文檔和樣例代碼。

2. WCF的ABC

????? 每一篇入門性質的介紹WCF的文章,都會提到ABC:Address, Binding, Contract。

  • Address: 每一個WCF的Service都有一個唯一的地址。這個地址給出了Service的地址和傳輸協議(Transport Protocol)
  • Binding: 通信(Communication)的方式很多,同步的request/reply模式,非同步的fire-and-forget模式。消息可以單向或者雙向的發送接收,可以立即發送或者把它放入到某一個隊列中再處理。所供選擇的傳輸協議也有Http, Tcp,P2P, IPC等。當要考慮Client/Server如何進行通訊的時候,除了考慮以上提到的幾點之外,還有其它很多需要考慮的因素,如安全,性能等。因此,簡單來說,Binding只不過是微軟提供的一組考慮比較周全、常用的封裝好的通信方式。
  • Contract:Contract描述了Service能提供的各種服務。Contract有四種,包括Service Contract, Data Contract, Fault Contract和Message Contract

3. Endpoint

???? 每一個Service都需要具備ABC三個元素,而WCF把這三者之間的關系規范化為Endpoint.

???????????????????

4. 簡單的例子

????? 每一個Service都需要有一個host。這個host的形式可以是多種多樣,可以是WinForm Application, Console Application,也可以IIS,或者是WAS(Vista),Windows Service等。

????? 首先,來定義Service的Contract.

[ServiceContract]public interface IHelloService{[OperationContract]void SayHello();[OperationContract]string SayHelloToEmployee(Employee employee);// TODO: Add your service operations here}// Use a data contract as illustrated in the sample below to add composite types to service operations[DataContract]public class Employee{private string firstName;private string lastName;[DataMember]public string FirstName{get { return firstName; }set { firstName = value; }}[DataMember]public string LastName{get { return lastName; }set { lastName = value; }}}

在定義好了Service Contract和Data Contract之后,還需要定義另外兩個元素,Address和Binding。這兩者都可以通過編程和配置文件來控制。這里就用配置文件的方式了,把這些代碼寫入host程序(Console)的App.config文件中:

<configuration><system.serviceModel><behaviors><serviceBehaviors><behavior name="Default" ><serviceMetadata httpGetEnabled="true"/></behavior></serviceBehaviors></behaviors><services><service name="HelloServiceLibrary.HelloService" behaviorConfiguration="Default"><host><baseAddresses><add baseAddress="http://localhost/HelloService"/></baseAddresses></host><endpoint address="net.tcp://localhost/HelloService01" binding="netTcpBinding"bindingConfiguration="" contract="HelloServiceLibrary.IHelloService" /><endpoint address="" binding="wsHttpBinding"contract="HelloServiceLibrary.IHelloService" ></endpoint></service></services></system.serviceModel> </configuration>

再通過Servicehost提供的方法Open(),就可以啟動Service了。

Client端要調用Service,都需要通過Proxy來完成,Proxy可以用VS2005或者Windows SDK提供的工具SvcUtil來完成。

?

寫的不好,請大家包涵,輕拍
不知道如何添加附件,要源代碼的請留下email

轉載于:https://www.cnblogs.com/jun1st/archive/2007/12/25/1014690.html

總結

以上是生活随笔為你收集整理的WCF 之旅——1的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。