ASP.NET WebApi:如何检查和创建每个请求的上下文

本文关键字:请求 上下文 创建 检查和 WebApi NET ASP | 更新日期: 2023-09-27 18:25:48

自托管的ASP.NET Web Api中,我如何才能:

  1. 从类中检测是否存在"环境"web api上下文。这是为了避免在每次服务调用中传递元数据信息所必需的。我正在寻找类似的产品

    System.Web.HttpRequest.Current != null

  2. 如何附加与当前请求关联的元数据信息。同样,这些元数据中的一些非常普遍,以至于在每个方法和调用中都包含它们太痛苦了。想想交易、多租户架构和认证。我需要一种方法,使这类信息在请求之间流动,而不会使代码混乱。

    换句话说,我还需要这里解释的等价物:

    HttpContext.Current.Items["user" + X.ToString()]

我想只要WebApi托管在IIS上,我仍然可以访问它们,但我有这些自托管的,我需要一种方法来跟踪环境UoW信息-我该怎么做?

几个注意事项:

  1. 我还考虑过使用每个请求DI并注入向管理者请求上下文,然而有大量遗留问题没有为此设置的代码(其中一些是静态的)和没有勇气做这样的专业来搞砸生产重构
  2. 我还使用了一个线程静态、静态变量——这样的问题是线程被回收,进程托管多个服务,其中一些甚至不是WebApi。。。所以有时我的经理认为它在处理WebApi请求,而实际上它正在为WCF请求服务

ASP.NET WebApi:如何检查和创建每个请求的上下文

HttpRequestMessage实例具有用于保存任意每个请求上下文的Properties字典。