1

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

1 回答 1

1

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

于 2013-08-02T02:33:16.240 回答