2010-12-12 5 views
1

Situation: I Website, die WCF-Dienst aufruft und ich versuche, es zu verstehen ..Bezug auf ASP.Net, WCF, App. Domäne, Instanz, Prozess, App. Pool, w3wp.exe

Frage: Betrachten Ich habe eine ASP.Net (IIS7 gehostet) Webseite wie i beziehen AppDomain, W3Wp.exe Prozess, Instanz, App.Pool. & Wie kann ich WCF-Dienst mit (AppDomain, Instance, App.Pool) mit WS-Server & Windows Service ... in Verbindung bringen, wenn mehrere Anfragen an asp.net Website & Website ruft WCF ... wie wird es miteinander in Verbindung gebracht werden? Ich bin etwas verwirrt ... Wenn möglich kann jemand von euch ein Diagramm setzen sie in Beziehung ..

Hoch schätzen Ihre Antworten

Antwort

3

Was genau ist es, was Sie wissen müssen oder nicht verstehen?

  • W3WP.exe ist der Prozess IIS verwendet ein AppPool in
  • AppPool ist ein IIS-Konzept zu laufen, existiert nicht in .Net
    • Jede Website Anwendung in es läuft besitzen AppDomain
    • AppPools wird mehrere Website-Anwendungen innerhalb desselben Prozesses ausgeführt
    • AppDomain ist ein .NET-Konzept, das sich darauf bezieht, wie Code in Ihrer Anwendung ausgeführt wird, erstellt bo Undarien und dergleichen.
    • Von MSDN: Stellt eine Anwendungsdomäne dar, die eine isolierte Umgebung darstellt, in der Anwendungen ausgeführt werden.
    • Sie können viele Anwendungsdomänen innerhalb desselben Prozesses verwenden, aber Anwendungsdomänen können nicht über verschiedene Prozesse hinweg existieren.
    • -Code in einer AppDomain kann neuen AppDomains erstellen
    • Sie über AppDomain Grenzen über Remoting kommunizieren können
      • Technik für im gleichen Prozess mit einem anderen AppDomain in Verbindung steht, in einem anderen Prozess oder auch auf einem entfernten Rechner ist die gleiche .

Der gesamte Code in .Net hat innerhalb eines AppDomain ausgeführt werden. Wenn Sie Ihren WCF-Dienst in Ihrer ASP.Net-Anwendung hosten, wird der WCF-Dienst in derselben AppDomain wie Ihre ASP.Net-Anwendung ausgeführt (siehe WCF und ASP.Net http://msdn.microsoft.com/en-us/library/aa702682.aspx). In diesem Kontext wird die AppDomain in einem AppPool in IIS ausgeführt, was aber nichts mit .Net zu tun hat.

Wenn Sie den WCF-Dienst in einem Windows-Dienst hosten, wird der WCF-Dienst in der AppDomain ausgeführt, die vom Windows-Dienst erstellt wurde. Hier sind keine AppPools enthalten.

Wenn Ihr Ausführungspfad

ist
  1. Client fordert asp.Netto-Webseite auf IIS gehostet
  2. Webseite anfordert WCF-Dienst in Windows-Dienst gehostet

dann wird es 1 AppPool, 1 w3wp.exe Prozess, 1 Windows-Service-Prozess und 2 AppDomains beteiligt.

Ich weiß nicht, ob Ihre Frage in irgendeiner Weise auf WCF service Appdomain details bezieht?