c# - 我可以依赖使用 Web API 的 CallContext 吗?

标签 c# asp.net .net asp.net-web-api

在使用 asp.net Web API 时,能否在整个请求中依赖 CallContext?

我已阅读decade-old blog post我不确定它是否仍然适用(如要求 there )。

假设 Thread-Agility 启动,如果我在全局过滤器中设置数据,假设它在整个请求中都存在是否安全?

最佳答案

如果 ASP.Net 切换线程,您将丢失 CallContext。在异步模型中,asp.net 任务调度程序将负责将异步调用加入到具有相同 HttpContext 的请求线程,,但不一定是相同的线程。

示例:一个请求开始,然后您在返回之前异步等待一些慢速 IO - 当您等待那个慢速 IO 时,您的请求线程没有理由无所事事地等待它可能被使用另一个请求。

ASP.Net 是Thread Agility(google it)方面的一次大练习,这里也有关于此的精彩讨论:CallContext vs ThreadStatic vs HttpContext

关于c# - 我可以依赖使用 Web API 的 CallContext 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36045823/

相关文章:

c# - 如何从 Windows Phone 8.1 发现蓝牙低功耗设备 (BLE)

c# - 列表自定义排序

c# - 在 IIS6 上使用 asp.net C# 3.5 自定义 404 页面

.net - 仅在 Chrome 中无效的 HTTP 状态代码 405

.net - Html.Partial 在 if 语句下不起作用

c# - XSLT 前同级来限制 foreach

c# - 静态类和具有私有(private)构造函数的实例类之间的区别

c# - 如何使用linq to sql从行中选择一列

javascript - 为动态创建的asp控件添加Jquery事件

.net - 是否有人反对使用 Thread.Sleep()?