日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
對WCF異步調(diào)用進行服務(wù)操作

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

我將服務(wù)契約的定義單獨形成了一個程序集,并在客戶端直接引用了它。然而,在這樣的服務(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);

注意,在BeginTransferDocument()方法上,必須在OperationContractAttribute中將AsyncPattern屬性值設(shè)置為true,因為它的默認值為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);

本文名稱:對WCF異步調(diào)用進行服務(wù)操作
鏈接URL:http://www.5511xx.com/article/coheoph.html