3

我有一个使用 Web 应用程序的 asp.net 网站,它们都在同一个应用程序池中(有 1 个工作进程)。该网站在其 web.config 文件中加载了一个 httpmodule,奇怪的是,主网站和应用程序都将由 httpmodule 的单独实例提供服务。为什么是这样?由于它们处于同一进程中,因此它们似乎应该使用一个实例。

此外,如果我尝试在应用程序中使用静态变量,它们将指向与 asp.net 网站不同的对象。和以前一样的问题,因为它们在同一个进程中,它们不应该是同一个对象还是.net在进程内部强加某种边界?

4

1 回答 1

3

IIS 为每个应用程序创建一个单独的 AppDomain。这些 AppDomain 存在于同一个操作系统进程中,但从托管代码的角度来看,它们可以被视为单独的进程。即它们不共享加载的程序集、内存等。

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

于 2009-03-03T19:03:03.383 回答