2008-12-30 64 views
25

我有一個從Windows服務調用的WCF服務。如何使我的WCF服務異步調用?

WCF服務運行一個SSIS包,該包可能需要一段時間才能完成,我不希望我的Windows服務必須等待它完成。

如何讓我的WCF服務調用異步? (或者是異步的默認?)

回答

2

的WCF的內部代理您的客戶端(Windows服務?)需要在創建時指定,您希望有可用的異步操作。

您可以修改它通過右鍵單擊現有的WCF代理,並選擇「配置服務引用」從這裏,你只需要檢查旁邊的複選框,以「生成異步操作」

好了,所以這就是WCF代理方面的事情照顧。 現在您需要在客戶端內部使用APM(異步編程模型)和Proxy。

12

在Visual Studio 2010上,在Add Service Reference > click Advanced button > check the Generate Asynchronous Operations複選框上。

完成後,異步操作將被添加並供您使用。

+0

太好了,幫了我很多......謝謝隊友! – 2017-04-28 15:02:05

3

服務端:

[ServiceContract] 
public interface IMyService 
{ 
    [OperationContract] 
    bool DoWork(int i); 
} 

客戶端:

[ServiceContract(Name = nameof(IMyService))] 
public interface IMyServiceClient : IMyService 
{ 
    [OperationContract] 
    Task<bool> DoWorkAsync(int i); 
}