【发布时间】:2011-01-14 23:09:56
【问题描述】:
我们的 ASP.NET 应用程序中有多个 Http 模块。 这些模块正在处理请求并设置一些线程静态变量。 但是,有时似乎顺序中的下一个 Http 模块在与前一个不同的线程中执行,并且在这种情况下未设置 Thread Static 变量。 有什么办法可以保证每个 Http Module 都和之前一样在同一个线程中工作。
谢谢
【问题讨论】:
标签: c# asp.net multithreading httpmodule
我们的 ASP.NET 应用程序中有多个 Http 模块。 这些模块正在处理请求并设置一些线程静态变量。 但是,有时似乎顺序中的下一个 Http 模块在与前一个不同的线程中执行,并且在这种情况下未设置 Thread Static 变量。 有什么办法可以保证每个 Http Module 都和之前一样在同一个线程中工作。
谢谢
【问题讨论】:
标签: c# asp.net multithreading httpmodule
不,应该在 IIS 上下文中避免使用 ThreadStatic。请改用 HttpContext.Items。无法避免 IIS 可能使用多个工作线程 AFAIK 服务单个请求的事实。见,例如这个Scott Hanselman blog post
【讨论】: