我有一个使用web应用程序的asp.net网站,它们都在同一个应用程序池中(只有一个工作进程)。网站在其web.config文件中加载了一个httpmodule,奇怪的是,主网站和应用程序都将由httpmodule的单独实例提供服务。为什么会这样呢?由于它们处于相同的进程中,因此它们似乎应该使用一个实例。
此外,如果我尝试在应用程序中使用静态变量,它们将指向与asp.net网站不同的对象。和以前一样的问题,因为它们在相同的进程中,它们不应该是相同的对象吗,或者.net是否在进程内部施加了某种边界?
发布于 2009-03-03 19:03:03
IIS为每个应用程序创建一个单独的AppDomain。这些AppDomains位于相同的操作系统进程中,但从托管代码的角度来看,可以将其视为单独的进程。也就是说,它们不共享加载的程序集、内存等。
http://www.odetocode.com/articles/305.aspx http://weblogs.asp.net/owscott/archive/2007/09/02/application-vs-appdomain.aspx http://msdn.microsoft.com/en-us/library/system.appdomain(VS.85).aspx
https://stackoverflow.com/questions/607641
复制相似问题