您需要了解或不了解的具体内容是什么?
- W3Wp.exe 是 IIS 用于在其中运行 AppPool 的进程
- AppPool 是一个 IIS 概念,在 .Net 中不存在
- 每个网站应用程序都在其自己的 AppDomain 中运行
- AppPools 在同一个进程中运行多个网站应用程序
- AppDomain 是一个 .Net 概念,它与代码在应用程序内的执行方式、建立边界等相关。
- 来自 MSDN:表示应用程序域,它是应用程序执行的隔离环境。
- 您可以在同一个进程中拥有多个 AppDomain,但 AppDomain 不能跨不同的进程。
- 一个 AppDomain 中的代码可以创建新的 AppDomain
- 您可以通过 Remoting 跨 AppDomain 边界进行通信
- 在同一进程、另一个进程甚至远程计算机上与另一个 AppDomain 通信的技术是相同的。
.Net 中的所有代码都必须在 AppDomain 中执行。如果您在 ASP.Net 应用程序中托管 WCF 服务,则 WCF 服务将在与 ASP.Net 应用程序相同的 AppDomain 中运行(请参阅 WCF 和 ASP.Net http://msdn.microsoft.com/en-us/图书馆/aa702682.aspx)。在这种情况下,AppDomain 将在 IIS 内的 AppPool 中运行,但这与 .Net 无关。
如果您在 Windows 服务中托管 WCF 服务,则 WCF 服务将在由 Windows 服务创建的 AppDomain 内运行,此处不涉及 AppPools。
如果您的执行路径是
- 客户端请求托管在 IIS 上的 asp.net 网页
- 网页请求托管在 Windows 服务中的 WCF 服务
那么将有 1 个 AppPool、1 个 W3Wp.exe 进程、1 个 Windows 服务进程和 2 个 AppDomains 参与。
我不知道您的问题是否与WCF 服务 Appdomain 详细信息有任何关系?