ASP.NET、WCF、APPを関連付けます。ドメイン、インスタンス、プロセス、アプリ。プール、w3wp.exe

StackOverflow https://stackoverflow.com/questions/4424730

  •  09-10-2019
  •  | 
  •  

質問

状況:私はWCFサービスを呼び出すウェブサイトを持っています、そして私はそれを理解しようとしています。

質問:ASP.NET(IIS7ホスト)Webサイトを持っていると考えてください。AppDomain、w3wp.exe Process、instance、app.pool。を関連付ける方法は、wcfサービスを(appdomain、instance、app.pool)と関連付けます。サーバー&Windowsサービス.. ASP.NET WebサイトとWebサイトの呼び出しWCFに複数のリクエストが行われるのはいつですか?私は少し混乱しています...可能であれば、あなたの誰かがそれを関連付けるために図を置くことができます。

あなたの回答を高く評価してください

役に立ちましたか?

解決

あなたが知る必要がある、または理解していないことは正確に何ですか?

  • w3wp.exeは、IISがApppoolを実行するために使用するプロセスです
  • AppPoolはIISコンセプトであり、.NETには存在しません
    • 各Webサイトアプリケーションは、独自のAppDomainで実行されます
    • AppPoolsは同じプロセス内で複数のWebサイトアプリケーションを実行します
  • AppDomainは、アプリケーション内でコードがどのように実行されるかに関連する.NETコンセプトであり、境界などを確立します。
    • MSDNから:アプリケーションドメインを表します。アプリケーションドメインは、アプリケーションが実行される孤立した環境です。
    • 同じプロセス内に多くのアプリドメインを持つことができますが、アプリドメインは異なるプロセスにわたって生きることはできません。
    • 1つのAppDomainのコードは、新しいAppDomainを作成できます
    • リモートを使用して、AppDomainの境界を越えて通信できます
      • 同じプロセス、別のプロセス、またはリモートコンピューターでさえ同じプロセスで別のアプリドメインと通信するための手法は同じです。

.NETのすべてのコードは、AppDomain内で実行する必要があります。 ASP.NETアプリケーションでWCFサービスをホストしている場合、WCFサービスはASP.NETアプリケーションと同じAppDomainで実行されます(WCFおよびASP.NETを参照してください http://msdn.microsoft.com/en-us/library/aa702682.aspx)。その文脈では、AppDomainはIIS内のAppPoolで実行されますが、それは.NETとは何の関係もありません。

WINDOWSサービスでWCFサービスをホストしている場合、WCFサービスはWindowsサービスによって作成されたAppDomain内で実行されます。ここにはAppPoolが関係していません。

実行パスがある場合

  1. クライアントは、IISでホストされているASP.NET Webページを要求します
  2. Webページは、WindowsサービスでホストされているWCFサービスを要求します

次に、1つのApppool、1 W3WP.exeプロセス、1つのWindowsサービスプロセス、2つのAppDomainが関与します。

あなたの質問が何らかの形で関係するかどうかはわかりません WCFサービスAppDomainの詳細 ?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top