Относительно ASP.Net, WCF, App.Домен, Экземпляр, Процесс, Приложение.Пул, w3wp.exe - PullRequest
1 голос
/ 13 декабря 2010

Ситуация: у меня есть веб-сайт, который вызывает службу WCF, и я пытаюсь понять это ..

Вопрос: Считайте, что у меня есть веб-сайт ASP.Net (размещенный на IIS7), как мне связать AppDomain, W3Wp.exe Process, Instance, App.Pool. & Как я могу связать службу WCF с (AppDomain, Instance, App.Pool) с WAS-сервером и службой Windows ... когда делается несколько запросов на сайт asp.net и вызовы WCF на сайте ...как это будет связано друг с другом?Я немного запутался ... Если возможно, кто-нибудь из вас может поставить диаграмму, чтобы связать это ..

Высоко ценю ваши ответы

1 Ответ

3 голосов
/ 13 декабря 2010

Что именно вы должны знать или не понимать?

  • W3Wp.exe - это процесс, который IIS использует для запуска AppPool в
  • AppPool - это концепция IIS, не существует в .Net
    • Каждое веб-приложение запускается в своем собственном домене приложений
    • AppPools запускает несколько веб-приложений внутри одного процесса
  • AppDomain - это концепция .Net, которая относится к тому, как код выполняется внутри вашего приложения, устанавливает границы и тому подобное.
    • Из MSDN: представляет домен приложения, представляющий собой изолированную среду, в которой выполняются приложения.
    • В одном и том же процессе может быть много доменов приложений, но домены приложений не могут существовать в разных процессах.
    • Код в одном домене приложений может создавать новые домены приложений
    • Вы можете обмениваться данными через границы домена приложений с помощью удаленного взаимодействия
      • Техника для связи с другим доменом приложений в том же процессе, в другом процессе или даже на удаленномкомпьютер один и тот же.

Весь код в .Net должен выполняться внутри AppDomain.Если вы размещаете службу WCF в своем приложении ASP.Net, служба WCF будет работать в том же AppDomain, что и ваше приложение ASP.Net (см. WCF и ASP.Net http://msdn.microsoft.com/en-us/library/aa702682.aspx).. В этом контексте AppDomain будет работатьв AppPool внутри IIS, но это не имеет ничего общего с .Net.

Если вы размещаете службу WCF в службе Windows, служба WCF будет работать внутри AppDomain, созданного службой Windows, никаких AppPoolsучаствует здесь.

Если ваш путь выполнения

  1. Клиент запрашивает веб-страницу asp.net, размещенную на IIS
  2. , веб-страница запрашивает службу WCF, размещенную в службе Windows

тогда будет 1 AppPool, 1 W3Wp.exe, 1 процесс Windows Service и 2 AppDomains.

Я не знаю, относится ли ваш вопрос каким-либо образом к WCF-сервис Детали домена приложения ?

...