我们如何使用await / async或IAsyncResult在WCF管道中集成自定义异步代码?
基本上我正在考虑在消息处理过程中进行阻塞操作的可能性。现在有两个方面:
记录,我们可能希望写入暴露异步版本的文件/数据库(已授予,可以使用队列和编写器线程完成)
授权,我们可能需要查询数据库,它还提供异步方法。
现在我正在查看WCF扩展点,我找不到任何异步版本的钩子。我正在寻找IParameterInspector,IDispatchMessageInspector等等。
即使是新的ClaimsAuthorizationManager也似乎没有提供异步对等。
我觉得我错过了这个难题的一大部分,因为我有这个项目,其中所有代码都使用新的异步功能,现在我无法在不执行.Wait()调用的情况下将其挂钩任务。
有人可以在这里点灯或告诉我这有什么问题吗?
答案 0 :(得分:3)
我认为WCF(如MVC)仅在操作级别支持async
(目前为止);管道不完全async
。另一方面,WebAPI的设计考虑了async
,并在其管道的所有阶段都支持它。