首先让我说一下,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