Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Cassini(VS WebDev)在不同线程上执行BeginRequest和EndRequest_.net_Asp.net_Asp.net Mvc_Visual Studio_Cassini - Fatal编程技术网

.net Cassini(VS WebDev)在不同线程上执行BeginRequest和EndRequest

.net Cassini(VS WebDev)在不同线程上执行BeginRequest和EndRequest,.net,asp.net,asp.net-mvc,visual-studio,cassini,.net,Asp.net,Asp.net Mvc,Visual Studio,Cassini,我正在调试一个ASP.NET MVC 2应用程序,该应用程序运行在.NET 4.0(Windows 7)上,目前位于Visual Studio调试Web服务器Cassini的内部 当我的Application.EndRequest处理程序突然出现异常时,一切都运行良好。在调查这个问题之后,我发现原因是Cassini在不同于BeginRequest的线程上调用EndRequest(然后,在BeginRequest中设置并在EndRequest处理程序中使用的ThreadStatic变量为null,

我正在调试一个ASP.NET MVC 2应用程序,该应用程序运行在.NET 4.0(Windows 7)上,目前位于Visual Studio调试Web服务器Cassini的内部

当我的Application.EndRequest处理程序突然出现异常时,一切都运行良好。在调查这个问题之后,我发现原因是Cassini在不同于BeginRequest的线程上调用EndRequest(然后,在BeginRequest中设置并在EndRequest处理程序中使用的ThreadStatic变量为null,因为在此线程上从未调用BeginRequest)

Cassini在不同线程上执行BeginRequest和EndRequest的原因可能是什么

我知道原因可能是“异步”页面指令(请参阅,但我的页面指令中没有“异步”属性)

一定还有别的原因

谢谢大家!

ASP.NET通常都是。您不应该假设整个请求将在一个线程中处理。使用HTTP上下文而不是线程静态变量

虽然在请求处理期间线程只能在某些地方切换,但最好避免做出任何假设