IIS的单个Web请求是否保留在单个线程上?

Jon*_*ner 5 c# iis thread-safety threadpool

我想编写一个日志记录http模块,该模块在请求执行时为线程本地存储中的单个请求存储日志事件列表.在End_Request上,我想将所有事件写回持久存储.

问题是,一个请求是否与一个线程匹配?即我可以在我的代码中的任何地方假设我可以向IEnumerable添加项目,并且它们将在请求结束时正确地组合在一起.

Luk*_*keH 5

没有.ASP.NET可以在处理请求时切换线程.这称为线程敏捷性.

只有某些点可以/将会这样做.我不记得他们的头脑是什么 - 现在正在寻找参考......

但简短的回答是否定的:您不能依赖于在整个请求期间可访问的同一线程本地存储.

  • http://stackoverflow.com/questions/1643987/will-a-request-in-iis-run-on-a-s-thread有一些关于它的链接和信息. (2认同)