2

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

基本上我正在考虑在消息处理期间进行可能阻塞操作的可能性。目前有两个领域:

  • 记录,我们可能想要写入公开异步版本的文件/数据库(当然,这可以通过队列和写入线程完成)

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

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

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

我觉得我在这里遗漏了大部分难题,因为我有这个项目,其中所有代码都使用新的异步功能,现在如果不对任务执行 .Wait() 调用,我就无法将它挂在这里。

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

4

1 回答 1

3

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

于 2013-06-13T23:24:21.787 回答