繁体   English   中英

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

[英]ASP.NET WebApi: How to check and create per-request context?

自托管的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提供服务。

HttpRequestMessage实例具有“属性”字典,该字典用于保存任意的每个请求上下文。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM