【发布时间】:2014-06-27 05:33:54
【问题描述】:
我从事的项目是托管在 Web 服务器上的 Web 应用程序调用托管在应用服务器上的 WCF 服务。 WCF 调用的代理由 ChannelFactory 创建,并通过通道进行调用,例如:
(省略使用块)
var factory = new ChannelFactory<IUserService>(endpointConfigurationName);
var channel = factory.CreateChannel();
var users = channel.GetAllUsers();
如果我理解得很好,通过通道调用是异步的,并且 Web 服务器上的线程在请求期间处于空闲状态,只是等待响应。
我想像这样异步调用:
var users = await channel.GetAllUsersAsync();
有没有办法使用 ChannelFactory 和频道异步进行调用?我没有找到。我知道我可以通过 svcutil / 添加服务引用生成异步方法,但我不想这样做。另外我不想通过添加异步方法来更改应用服务器(IUserService)上的服务接口。
有什么方法可以调用与 ChannelFactory 异步的方法吗?谢谢。
【问题讨论】:
标签: c# .net wcf async-await