MVC中的异步操作过滤器用于异步控制器方法?

时间:2014-09-12 17:55:39

标签: asp.net-mvc asynchronous aop

首先让我说一下,Stack Overflow已经有两个问题,其中包含不支持异步操作过滤器的已接受答案:

Async action filter in MVC 4
Calling Async Methods in Action Filters in MVC 5

所以,我正在寻找一个“解决方案”。这就是我目前在WebApi应用程序中所做的事情:

public class MessageLoggingHandler : DelegatingHandler
{

    protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
    {
        await LogRequestInfo(request);
        var response = await base.SendAsync(request, cancellationToken);
        await LogResponseInfo(response);
        return response;
    }

我想要实现的是记录请求并将响应记录为交叉问题。我怎么能在MVC中这样做?它甚至可能吗?我看到两个帖子有一个可能的解决方案......有人用它吗?它有用吗?我是否应该走这条路?还有替代品吗?我真的很犹豫要采用这两种方法,因为害怕在我们的申请中破坏某些东西。

1)实现自定义AsyncControllerActionInvoker
http://ayende.com/blog/163170/building-async-unit-of-work-with-mvc-4

2)创建和异步控制器基类,使用&#34; ParallelExtensionsExtras&#34;库(无论是什么),并覆盖一些BeginExecute,EndExecute方法。
Perform Async operation asp.net mvc outside of the action

0 个答案:

没有答案