情况:我有一个致电WCF服务的网站,我正在尝试理解它。

问题:考虑我有一个ASP.NET(IIS7托管)网站,如何将AppDomain,W3WP.EXE流程,实例,App.Pool。服务器和Windows服务..在ASP.NET网站和网站呼叫WCF的多个请求时。如何相互关联?我有点困惑...如果可能的话,你们中的任何人都可以放一个图表以将其关联。

非常感谢您的回应

有帮助吗?

解决方案

您到底需要知道或不了解什么?

  • w3wp.exe是IIS用于运行AppPool的过程
  • AppPool是一个IIS概念,不存在.NET中
    • 每个网站应用程序都在其自己的应用程序中运行
    • AppPools在同一过程中运行多个网站应用程序
  • AppDomain是一个.NET概念,该概念与代码在应用程序内部执行,建立边界等方面的执行方式有关。
    • 来自MSDN:代表一个应用程序域,该域是一个隔离的环境,应用程序执行。
    • 您可以在同一过程中拥有许多应用程序,但是AppDomains不能在不同的过程中生活。
    • 一个应用程序中的代码可以创建新应用程序
    • 您可以通过远程进行跨应用程序边界进行交流
      • 在同一过程,另一个过程甚至在远程计算机上与另一个AppDomain通信的技术是相同的。

.NET中的所有代码必须在AppDomain中执行。如果您在ASP.NET应用程序中托管WCF服务,WCF服务将与ASP.NET应用程序同一应用程序运行(请参阅WCF和ASP.NET http://msdn.microsoft.com/en-us/library/aa702682.aspx)。在这种情况下,AppDomain将在IIS内部的AppPool中运行,但这与.NET无关。

如果您在Windows服务中托管WCF服务,WCF服务将在Windows Service创建的AppDomain内部运行,此处不涉及AppPools。

如果您的执行路径是

  1. 客户端请求ASP.NET网页托管在IIS上
  2. Windows服务中托管的网页请求WCF服务

然后将有1个AppPool,1个W3WP.EXE进程,1个Windows Service Process和2个AppDomains。

我不知道您的问题是否与 WCF服务应用程序详细信息 ?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top