10

私はいつも疑問に思っていました。同じアプリプールで2つのasp.netWebサイトを実行しているとしましょう。

それらをウェブサイト1とウェブサイト2と呼びましょう

これらのウェブサイトは両方ともいくつかの共有コードを参照しています。それをAwesome.dllと呼びましょう。

Awesome.dllに次のように定義されたクラスが含まれているとしましょう

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

私の質問:

両方のWebサイトが同じ静的クラスを共有していますか、それとも独自の分離されたコピーを持っていますか?つまり、Webサイト1がFoo.Barに変更を加えた場合、その変更はWebサイト2に反映されますか?

4

2 に答える 2

9

私の理解では、Webサイトは同じアプリプールにありますが、それでも独自のアプリドメインにあります。つまり、お互いのオブジェクトを見ることができず、それぞれが静的クラスの独自のインスタンス化を持ちます。

于 2012-06-17T11:52:19.590 に答える
0

各アプリケーションインクルード(WebSite)はAppDomainを実行しており、Webアプリケーションは同じアプリケーションプールを実行していますが、appdomainのコンテキストで静的データを実行しています

したがって、Web Site2は、Webサイトで行われた変更には反映されません。

于 2012-06-17T11:56:39.830 に答える