在自托管的 ASP.NET Web Api中,我该如何:
从类中检测是否存在“环境”Web api 上下文。这是为了避免在每个服务调用中传递元数据信息。我正在寻找相当于
System.Web.HttpRequest.Current != null
如何附加与当前请求关联的元数据信息。再一次,这些元数据中的一些是如此普遍,以至于在每个方法和调用中都包含它们太痛苦了。想想事务、多租户架构和凭证。我需要一种方法来使这种信息在请求之间流过,而不会弄乱代码。
换句话说,我还需要与此处解释的等效项:
HttpContext.Current.Items["user" + X.ToString()]
我想我仍然可以访问它们,只要 WebApi 托管在 IIS 上,但我有这些自托管,我需要一种方法来跟踪环境 UoW 信息 - 我该怎么做?
几点注意事项:
- 我还考虑过使用每个请求 DI 并将请求上下文注入管理器,但是有大量遗留代码没有为此设置(其中一些是静态的),我没有勇气吹通过进行如此重大的重构来提高产量。
- 我还使用了一个线程静态、静态变量——这样的问题是线程被回收,并且进程托管多个服务,其中一些甚至不是 WebApi ......所以有时我的经理认为它正在处理 WebApi 请求事实上,它正在为 WCF 服务。