10

我一直想知道,假设您有两个 asp.net 网站在同一个应用程序池中运行。

让我们称他们为网站 1 和网站 2

这两个网站都引用了一些共享代码,我们称之为 Awesome.dll

假设 Awesome.dll 包含一个定义如下的类

public static class Foo
{
   public static string Bar { get; set; }
}

我的问题:

两个网站是否共享相同的静态类,或者它们是否有自己的独立副本?也就是说,如果网站 1 对 Foo.Bar 进行了更改,那么该更改是否反映在网站 2 中?

4

2 回答 2

9

我的理解是,虽然这些网站将位于同一个 App Pool 中,但它们仍将位于它们自己的App Domain中。这意味着他们看不到彼此的对象,并且每个对象都有自己的静态类实例化。

于 2012-06-17T11:52:19.590 回答
0

每个应用程序包括(WebSite)都在应用程序域的上下文中运行 AppDomain 和静态数据,尽管 Web 应用程序正在运行相同的应用程序池

因此,网站 2 不会反映在网站中所做的更改。

于 2012-06-17T11:56:39.830 回答