【问题标题】:Alternative to HttpContext.Current.Items in ASP.NET Web Api替代 ASP.NET Web Api 中的 HttpContext.Current.Items
【发布时间】:2015-08-05 07:09:02
【问题描述】:

是否有非 System.Web/HttpContext 替代 HttpContext.Current.Items,按请求数据存储?

我想保存请求的信息,保存它们并从我的记录器 (NLog) 中读取值。我发现一个很好的地方是 DefaultHttpControllerActivator/IHttpControllerActivator。

这样日志消息看起来应该总是一样的,并且开发者对所提供的格式或信息没有太大的影响。

编辑:经过更多研究,我发现: How can we create a callcontext for async .net methods? 我希望将逻辑调用上下文与不可变集合一起使用会按预期工作。

【问题讨论】:

  • 为什么需要替代方案? Web Api 上没有 HttpContext.Current 或 Items 属性吗?

标签: c# asp.net-web-api nlog httpcontext


【解决方案1】:

HttpRequestMessage.Properties 是一个 IDictionary<string, Object> 集合,用于存储任意请求数据。在控制器操作中,这很容易作为基础 ApiController 类上的 Request.Properties 属性使用。

不确定您打算如何使用它进行日志记录,但您可能还想考虑编写一个 Logging DelegatingHandler

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-16
    • 1970-01-01
    相关资源
    最近更新 更多