C# 中间件的Net内核顺序
我目前在API管道中有一些错误处理中间件。我将添加一个日志中间件。目标是记录所有传入请求和传出响应,以及记录发生的任何错误C# 中间件的Net内核顺序,c#,asp.net-core,C#,Asp.net Core,我目前在API管道中有一些错误处理中间件。我将添加一个日志中间件。目标是记录所有传入请求和传出响应,以及记录发生的任何错误 这是可能的吗?在startup.cs中,日志中间件是否在错误处理之前运行?反之亦然?是的,这都是可能的。您可以在传入请求通过管道传递之前将其记录在中间件中,并在通过管道返回时记录传出响应。要记录错误,请将中间件对next的调用包装为try/catch,记录异常,然后重试以让错误处理中间件拾取它 下面是一个大概的例子,说明了它可能是什么样子: app.UseErrorHand
这是可能的吗?在startup.cs中,日志中间件是否在错误处理之前运行?反之亦然?是的,这都是可能的。您可以在传入请求通过管道传递之前将其记录在中间件中,并在通过管道返回时记录传出响应。要记录错误,请将中间件对
next
的调用包装为try
/catch
,记录异常,然后重试以让错误处理中间件拾取它
下面是一个大概的例子,说明了它可能是什么样子:
app.UseErrorHandler("/Home/Error");
app.Use(async (ctx, next) =>
{
try
{
// Log the incoming request.
await next();
// Log the outgoing response.
}
catch (Exception ex)
{
// Log the exception.
throw; // Rethrow. The error-handler will pick this up.
}
});
// e.g.
app.UseMvc();
日志中间件跟踪错误处理程序,以便它可以在错误处理程序启动之前(在通过管道返回的过程中)进行日志记录。如果要在错误处理程序之前添加日志记录中间件,则在中间件看到异常时,该异常已经转换为响应