自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

對WCF異步調(diào)用進(jìn)行服務(wù)操作

開發(fā) 后端
對客戶端究竟應(yīng)該如何執(zhí)行WCF異步調(diào)用,如何采用編程方式獲得服務(wù)代理對象,這些問題都是很頭疼的問題,下面對這些問題進(jìn)行解答。

希望我對WCF異步調(diào)用的一點(diǎn)經(jīng)驗?zāi)芙o大家?guī)韼椭?,?dǎo)致WCF異步的原因也許還有很多,不過在你遇到錯誤時,可以先檢查一下你程序中的字符串,暫時把他們置為””,試試看。沒準(zhǔn)就是他引起的問題啊。

我將服務(wù)契約的定義單獨(dú)形成了一個程序集,并在客戶端直接引用了它。然而,在這樣的服務(wù)契約程序集中,是沒有包含異步方法的定義的。因此,我需要修改在客戶端的服務(wù)定義,增加操作的異步方法。這無疑為服務(wù)契約的重用帶來障礙。至少,我們需要在客戶端維持一份具有異步方法的服務(wù)契約。#t#

所幸,在客戶端決定采用WCF異步調(diào)用用我所設(shè)計的服務(wù)操作時,雖然需要修改客戶端的服務(wù)契約接口,但并不會影響服務(wù)端的契約定義。因此,服務(wù)端的契約定義可以保持不變,而在客戶端則修改接口定義如下

  1. [ServiceContract]  
  2. public interface IDocumentsExplorerService  
  3. {  
  4. [OperationContract]  
  5. Stream TransferDocument(Document document);  
  6. [OperationContract(AsyncPattern = true)]  
  7. IAsyncResult BeginTransferDocument(Document document,  
  8. AsyncCallback callback, object asyncState);  
  9. Stream EndTransferDocument(IAsyncResult result);  
  10. }  

注意,在BeginTransferDocument()方法上,必須在OperationContractAttribute中將AsyncPattern屬性值設(shè)置為true,因為它的默認(rèn)值為false。

WCF異步調(diào)用方式如下:

  1. BasicHttpBinding binding = new BasicHttpBinding();  
  2. binding.SendTimeout = TimeSpan.FromMinutes(10);  
  3. binding.TransferMode = TransferMode.Streamed;  
  4. binding.MaxReceivedMessageSize = 9223372036854775807;  
  5. EndpointAddress address = new EndpointAddress  
  6. ("http://localhost:8008/DocumentExplorerService");  
  7. ChannelFactory factory =   
  8. new ChannelFactory(binding,address);  
  9. m_service = factory.CreateChannel();  
  10. ……  
  11. IAsyncResult result = m_service.BeginTransferDocument(doc,null,null);  
  12. result.AsyncWaitHandle.WaitOne();  
  13. Stream stream = m_service.EndTransferDocument(result); 
責(zé)任編輯:chenqingxiang 來源: 電子工業(yè)出版社
相關(guān)推薦

2009-12-21 14:10:26

WCF異步調(diào)用

2009-11-09 10:50:30

WCF異步調(diào)用

2009-11-06 15:54:15

WCF異步調(diào)用

2010-03-01 14:01:50

WCF服務(wù)異步調(diào)用

2010-02-22 13:28:05

WCF異步調(diào)用

2009-12-07 14:26:47

WCF異步調(diào)用

2009-11-09 15:49:01

WCF異步調(diào)用

2010-02-25 09:13:34

WCF異步調(diào)用

2009-12-22 18:43:00

WCF異步調(diào)用

2009-12-08 18:08:43

WCF服務(wù)

2009-10-20 16:48:30

C#委托

2009-07-01 13:58:00

JavaScript異

2012-04-20 10:05:16

WCF

2010-03-01 11:10:41

WCF綁定元素

2010-03-01 15:08:05

WCF單向操作

2009-07-01 14:31:01

JavaScript異

2009-07-01 14:05:23

JavaScript異

2009-08-21 11:24:16

C#異步調(diào)用

2009-07-01 14:23:46

JavaScript異

2009-07-01 14:37:14

JavaScript異
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號