我有一个使用 Web 应用程序的 asp.net 网站,它们都在同一个应用程序池中(有 1 个工作进程)。该网站在其 web.config 文件中加载了一个 httpmodule,奇怪的是,主要网站和应用程序都将由 httpmodule 的单独实例提供服务。为什么是这样?因为他们在同一个进程中,所以他们似乎应该使用一个实例。
此外,如果我尝试在应用程序中使用静态变量,它们将指向与在 asp.net 网站中不同的对象。和以前一样的问题,因为它们在同一个进程中,它们不应该是同一个对象,或者 .net 是否在进程内部强加了某种边界?
最佳答案
IIS 为每个应用程序创建一个单独的 AppDomain。这些 AppDomains 位于同一个操作系统进程中,但从托管代码的角度来看,可以将它们视为独立的进程。 IE。它们不共享加载的程序集、内存等。
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
关于c# - 多个 httpmodule 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/607641/