我正在调试在.NET 4.0(Windows 7)上运行的ASP.NET MVC 2应用程序,当前在Cassini中,Visual Studio调试Web服务器。Cassini(VS WebDev)在不同的线程上执行BeginRequest和EndRequest
所有运行良好,当我突然在我的Application.EndRequest处理程序中有异常。在调查了这个问题之后,我发现原因是Cassini在与BeginRequest不同的线程上调用EndRequest(然后,在BeginRequest中设置并在EndRequest处理程序中使用的ThreadStatic变量为null,因为在此线程上,BeginRequest永远不会所谓的)。
卡西尼在不同线程上执行BeginRequest和EndRequest的原因是什么?
我知道原因可能是'Async'Page指令(请参阅Do ASP.NET Requests always BeginRequest and EndRequest on the same thread?,但我的Page指令中没有'Async'属性)。
必须有另一个原因。
谢谢!