在使用 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/