Asp.net web api APIController";“已执行”;方法?

Asp.net web api APIController";“已执行”;方法?,asp.net-web-api,asp.net-apicontroller,Asp.net Web Api,Asp.net Apicontroller,在ApiController操作中,我需要在操作完成后立即关闭与数据库的连接 在控制器下,我覆盖执行的操作以完成此操作 在ApiController操作下,我将如何实现这一点 谢谢您可以覆盖该方法: public override Task ExecuteAsync(HttpControllerContext controllerContext,CancellationToken CancellationToken) { 返回基地 .ExecuteAsync(controllerContext,

ApiController
操作中,我需要在操作完成后立即关闭与数据库的连接

在控制器下,我覆盖执行的操作以完成此操作

ApiController
操作下,我将如何实现这一点

谢谢

您可以覆盖该方法:

public override Task ExecuteAsync(HttpControllerContext controllerContext,CancellationToken CancellationToken)
{
返回基地
.ExecuteAsync(controllerContext,cancellationToken)
.ContinueWith(t=>
{
//控制器操作已完成执行,
//您的自定义代码可能会出现在这里。。。
返回t.Result;
});
}

@Darin在哪里可以找到filtercontext.Exception?使用(_session){if(_session==null)返回;if(!_session.Transaction.IsActive)返回;if(controllerContext.Request.Exception!=null | | | | | ModelState.IsValid)_session.Transaction.Rollback();else _session.Transaction.Commit()}如果管道中有错误,我不想提交我的事务。。。。controllerContext.Request.Exception无效,在哪里可以获取异常?@Haroon,检查通过匿名方法传递给
Continue的
t
参数。您将在那里找到您正在查找的内容。@DarinDimitrov谢谢-在上面的代码中,我无法使用代码返回;编译器错误(需要返回HtpResponseMessage)我该怎么办。如果没有异常,我只想让代码保存更改…@Haroon,为什么要返回任何内容?API控制器操作在此阶段已完成执行,您只需提交或回滚事务。
public override Task<HttpResponseMessage> ExecuteAsync(HttpControllerContext controllerContext, CancellationToken cancellationToken)
{
    return base
        .ExecuteAsync(controllerContext, cancellationToken)
        .ContinueWith(t => 
        {
            // the controller action has finished executing, 
            // your custom code could come here ...

            return t.Result;
        });
}