Azure Function App IFunctionInvocationFilter在请求执行后丢失请求体



我在Azure函数上有一个过滤器,它在主函数操作完成后立即执行一些任务。

public async Task<IActionResult> DoStuff(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "notImportant")]
HttpRequest req,
ClaimsPrincipal principal)
{
string bodyContent = await new StreamReader(req.Body).ReadToEndAsync();  //Always has content
}

我的滤镜是这样的:

public class TraceAuditFilter : IFunctionInvocationFilter
{

public TraceAuditFilter()
{

}

public async Task OnExecutedAsync(FunctionExecutedContext executedContext, CancellationToken cancellationToken)
{
var request = (HttpRequest)executedContext.Arguments["req"];
string body = new StreamReader(req.Body).ReadToEnd(); //Always Empty
}
}

我的过滤器成功触发,但是过滤器方法中的'body'总是空的。你知道是什么让它复位的吗?

我们需要添加函数过滤器类作为属性。

这可能是一个没有在函数中调用过滤器的原因。

您需要将[TraceAuditFilter]添加到函数中,以便过滤器可以通过。

请参阅以下文章以获得深入解释:-IFunctionInvocationFilter

函数过滤器

相关内容

  • 没有找到相关文章

最新更新