Относительно ASP.NET, WCF, приложение. Домен, экземпляр, процесс, приложение. Бассейн, w3wp.exe.

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

  •  09-10-2019
  •  | 
  •  

Вопрос

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

Вопрос: Подумайте, что у меня есть веб-сайт ASP.NET (IIS7), как мне относятся к Aspdomain, W3WP.EXE, экземпляр, app.pool. & Как я могу связать службу WCF с (AppDomain, экземпляр, app.pool) с Server & Windows Service.. когда несколько запросов сделаны на веб-сайт ASP.NET и веб-сайт звонков WCF .. Как это будет связано друг с другом? Я немного запутался ... если возможно, может кто-нибудь из вас поставить диаграмму, чтобы связать ее ..

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

Это было полезно?

Решение

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

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

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

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

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

  1. Клиент Запросы на веб-страницу ASP.NET, размещенные на IIS
  2. Веб-страница Заказать WCF Сервис, размещенная в Windows Service

Тогда будет 1 AppPool, 1 W3WP.EXE процесс, 1 процесс обслуживания Windows и 2 задействования Appdomains.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top