使用异步代码扩展WCF

时间:2013-06-12 20:10:03

标签: wcf async-await

我们如何使用await / async或IAsyncResult在WCF管道中集成自定义异步代码?

基本上我正在考虑在消息处理过程中进行阻塞操作的可能性。现在有两个方面:

  • 记录,我们可能希望写入暴露异步版本的文件/数据库(已授予,可以使用队列和编写器线程完成)

  • 授权,我们可能需要查询数据库,它还提供异步方法。

现在我正在查看WCF扩展点,我找不到任何异步版本的钩子。我正在寻找IParameterInspectorIDispatchMessageInspector等等。

即使是新的ClaimsAuthorizationManager也似乎没有提供异步对等。

我觉得我错过了这个难题的一大部分,因为我有这个项目,其中所有代码都使用新的异步功能,现在我无法在不执行.Wait()调用的情况下将其挂钩任务。

有人可以在这里点灯或告诉我这有什么问题吗?

1 个答案:

答案 0 :(得分:3)

我认为WCF(如MVC)仅在操作级别支持async(目前为止);管道不完全async。另一方面,WebAPI的设计考虑了async,并在其管道的所有阶段都支持它。