ASP.NET全局/静态存储?

ASP.NET全局/静态存储?,asp.net,static,request,appdomain,Asp.net,Static,Request,Appdomain,我有一个线程安全对象,它是以前在windows服务/客户端场景中使用的API的一部分。这个线程安全对象本质上是一个单例对象,存储在一个静态变量中,以便所有调用者都可以访问相同的状态 这个API最近开始在ASP.NET应用程序中使用,我怀疑我们看到的一些古怪行为可能是由于意外的AppDomain/lifecycle行为造成的。所以我想知道我是否能得到一些验证: 静态变量是否可靠地可用于所有请求,或者ASP.NET是否对多个请求使用多个AppDomain进行了欺骗 我知道这将是一个网络花园的情况。。

我有一个线程安全对象,它是以前在windows服务/客户端场景中使用的API的一部分。这个线程安全对象本质上是一个单例对象,存储在一个静态变量中,以便所有调用者都可以访问相同的状态

这个API最近开始在ASP.NET应用程序中使用,我怀疑我们看到的一些古怪行为可能是由于意外的AppDomain/lifecycle行为造成的。所以我想知道我是否能得到一些验证:

静态变量是否可靠地可用于所有请求,或者ASP.NET是否对多个请求使用多个AppDomain进行了欺骗


我知道这将是一个网络花园的情况。。。但是我们的IIS被配置为只使用1个进程,并且被配置为每天只回收一次

静态变量对于1个工作进程中的所有请求都应该是相同的。我建议您将日志添加到asp.net应用程序中,尤其是在应用程序的启动/停止和单例的静态构造函数中,以查看发生了什么。
希望这有帮助

好的,这就是我的想法,但我想再次验证我的假设。谢谢这个答案是不正确的。在.NET中,静态变量的作用域是AppDomain,而不是进程。一个ASP.NET工作进程可以承载多个AppDomain。@richb,您在实际的ASP.NET应用程序中这样做有什么原因吗?Kirill如果您在IIS上使用同一工作进程定义了多个应用程序,每个应用程序都有自己的AppDomain。您可以将每个应用程序分配给不同的工作进程,但不这样做是完全有效的。