2011-12-13 6 views
18

アプリケーションドメインとアプリケーションプールの違いは何ですか?アプリケーションドメインとアプリケーションプールの違いは?

私はこれらの2つの用語に関する多くの記事を読んでいます。それでも彼らについて適切な理解を得ることができません。

簡単な説明で詳しく説明してください。

ありがとうございます。

+1

http://weblogs.asp.net/owscott/archive/2007/09/02/application-vs-appdomain.aspx – Prisoner

+0

http://social.msdn.microsoft.com/Forums/en/ clr/thread/fd865e35-a2ee-41b8-b112-5913f15c96f2 – Prisoner

+1

http://forums.asp.net/t/1688586.aspx/1 – Prisoner

答えて

26

IISプロセスはw3wpです。 IISのすべてのアプリケーションプールは、それ自身のプロセスを使用します。 AppPool1はプロセス3784を使用し、AppPool2はプロセス5044を使用します。 Asp.netの異なるアプリケーションは異なるアプリケーションを使用します。 AppDomain;

AppTest1とAppTest2は異なるAppDomainにありますが、同じプロセスの にあります。

どうしたらいいですか?

アプリケーションプールとAppDomainは、どちらも アイソレーションを提供できますが、異なるアプローチを使用します。アプリケーションプール は、.NETなしで で動作するアプリケーションを分離するためにプロセスを使用します。しかし、AppDomainは.NETによって提供される別の分離方法 です。 あなたのサーバーが何千ものWebサイトをホストしている場合は、 何千ものアプリケーションプールを使用してWebサイトを隔離しません。 あまりに多くのプロセスが実行されているためです。 しかし、いつかアプリケーションプールが必要です。 アプリケーションプールの利点の1つは、アプリケーションプールのIDを に設定できることです。また、より柔軟なアプリケーションプールをリサイクルするための オプションがあります。少なくとも今のところ、 IISは、appdomainをリサイクルする明示的なオプションを提供しませんでした。

アプリケーションプールは、異なるWebアプリケーションとWebサイトの の1つ以上のURLのグループです。任意のWebディレクトリ または仮想ディレクトリをアプリケーションプールに割り当てることができます。 アプリケーションプール内のすべてのアプリケーションは同じ ワーカープロセス実行可能ファイルW3wp.exeを共有します。 ワーカープロセスは1つのアプリケーションプールをワーカーから分離しています 別のサービスを提供するプロセス[開始MSワードと同様に多くのワードドキュメントを開く] 。別のワーカープロセスごとに はプロセス境界を提供するため、あるアプリケーションプールに割り当てられたアプリケーションが の場合、他のアプリケーションプールの問題はアプリケーションに影響しません。この は、ワーカープロセスに障害が発生しても、他のアプリケーションプールで実行されているアプリケーションには影響しません。 [ie] などの場合、単語文書に問題がある場合は、 はExcelシートに論理的に影響しません。 アプリケーションドメインは、実行されたソフトウェア のアプリケーションを互いに隔離するために使用されるメカニズム( のオペレーティングシステムのプロセスに似ています)で、 に影響しないようにするためのメカニズムです。 [MS WORDを開くとMS EXCELに影響しません の間にアプリケーション間の依存関係がないため、いつでも両方のアプリケーションを開いたり閉じたりできます。各 アプリケーションドメインは、 アドレス空間を使用してアプリケーションドメインのリソースをスコープする独自の仮想アドレス空間を持っています。簡単な方法でthisリンク

+0

"アプリケーションプールは、わかりやすくするために、「.NET」は「.NETの有無」で終わらなければなりません。また、アプリケーションプールは複数のワーカープロセス(Webガーデン)を持つことができます。それはもはや推奨されるアプローチではありませんが、その存在を反映する答えです。 –

+0

単一のアプリケーションプールがさまざまなアプリケーションをホストできるシナリオを明確にしてください。これは、アプリケーションが.Netアプリケーションであり、単一のアプリケーションプールプロセス内でアプリケーションドメインレベルの分離をサポートするため可能ですか? – Sumith

-1

おかげ

  • アプリケーションプールはそれぞれ、すべてのウェブサイトのために作成されます。

  • アプリケーションドメインは1つのアプリケーションドメインの目的に関係します。

+1

私は、あなたの第2の弾丸が何を言っているのかを知っているわけではありません。 –