繁体   English   中英

如何对我的WCF服务进行异步调用?

[英]How to make a call to my WCF service asynchronous?

我有从Windows服务调用的WCF服务。

WCF服务运行一个SSIS程序包,并且该程序包可能需要一段时间才能完成,我不希望Windows服务必须等待它完成。

如何使WCF服务调用异步? (或者默认情况下是异步的吗?)

MSDN的以下文章将满足您的所有需求:

实施异步服务操作

调用WCF服务异步

设计服务合同

在Visual Studio 2010上的“ Add Service Reference > click Advanced button > check the Generate Asynchronous Operations复选框。

这样做之后,异步操作将被添加并可供您使用。

服务端:

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

客户端:

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

客户端内部的WCF代理(Windows服务?)需要在创建时指定,希望使用异步操作。

您可以通过右键单击现有的WCF代理并选择“配置服务引用”来修改现有的WCF代理。从此处,您只需要选中“生成异步操作”旁边的复选框即可。

好的,这就是WCF代理方面的工作。 现在,您需要将APM(异步编程模型)与客户端内部的Proxy一起使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM