【发布时间】:2011-05-26 23:58:24
【问题描述】:
我正在调试一个在 .NET 4.0 (Windows 7) 上运行的 ASP.NET MVC 2 应用程序,目前在 Cassini 中,Visual Studio 调试 Web 服务器。
当我的 Application.EndRequest 处理程序突然出现异常时,一切都运行良好。在调查了这个问题后,我发现原因是 Cassini 在与 BeginRequest 不同的线程上调用 EndRequest(然后,在 BeginRequest 中设置并在 EndRequest 处理程序中使用的 ThreadStatic 变量为空,因为在这个线程上, BeginRequest 从来没有调用)。
Cassini 在不同线程上执行 BeginRequest 和 EndRequest 的原因可能是什么?
我知道原因可能是“异步”页面指令(请参阅 Do ASP.NET Requests always BeginRequest and EndRequest on the same thread?,但我的页面指令中没有“异步”属性)。
肯定还有别的原因。
谢谢!
【问题讨论】:
标签: .net asp.net asp.net-mvc visual-studio cassini