我是一个 .NET 新手,发现很难想出一个好的方法来做以下事情。我有一个要求,在 ASP.NET 中我收到一个自定义 HTTP 标头(每个请求都是唯一的)。我想在处理此请求的各个层(控制器、逻辑层等)的日志中打印此变量。
我最初想到了一个 IHttpModule,它将处理标头并检索此自定义标头并将其存储在 ThreadLocal 存储中。日志框架可以从中读取并将其作为消息的一部分打印出来。
但是遇到了问题,因为逻辑层处理发生在不同的线程上,因此系统丢失了这个请求的上下文。
我正在寻找一种非侵入性的方式来做到这一点,这可以透明地发生而无需更改系统的核心代码。这样我就可以在不更改代码的情况下打开或关闭该功能。
是否有任何框架级别的支持或任何建议?
谢谢