相关 ASP.Net、WCF、App.域、实例、进程、应用程序。池,w3wp.exe

发布于 2024-10-06 23:40:46 字数 280 浏览 0 评论 0原文

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

问题: 考虑我有一个 ASP.Net(IIS7 托管)网站,我如何关联 AppDomain、W3Wp.exe 进程、实例、App.Pool。我如何将 WCF 服务与(AppDomain、Instance、App.Pool)与 WAS 服务器和应用程序关联起来? Windows 服务..当向 asp.net 网站发出多个请求时网站调用WCF..它将如何相互关联?我有点困惑... 如果可能的话,你们中的任何人都可以放一张图表来关联它。

非常感谢您的回复

Situation:
I have website which calls WCF Service and i'm trying to understand it..

Question:
Consider i have a ASP.Net (IIS7 hosted) website how do i relate AppDomain, W3Wp.exe Process , Instance ,App.Pool.& How can i relate WCF service with (AppDomain, Instance ,App.Pool) with WAS server & Windows Service..when multiple requests are made to asp.net website & website calls WCF ..how it will be related with each other? i'am little confused...
If possible can anyone of you put a diagram to relate it..

Highly appreciate your responses

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不念旧人 2024-10-13 23:40:46

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

  • W3Wp.exe 是 IIS 用于运行 AppPool 的进程,
  • AppPool 是 IIS 概念,在 .Net 中不存在
    • 每个网站应用程序都在自己的 AppDomain 中运行
    • AppPools 在同一进程内运行多个网站应用程序
  • 。AppDomain是一个 .Net 概念,涉及代码如何在应用程序内部执行、建立边界等。
    • 来自 MSDN:代表应用程序域,它是应用程序执行的隔离环境。
    • 同一进程中可以有多个 AppDomain,但 AppDomain 不能跨不同进程。
    • 一个 AppDomain 中的代码可以创建新的 AppDomain
    • 您可以通过远程处理跨 AppDomain 边界进行通信
      • 与同一进程、另一个进程甚至远程计算机上的另一个 AppDomain 进行通信的技术是相同的。

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

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

如果您的执行路径是

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

,那么将涉及 1 个 AppPool、1 个 W3Wp.exe 进程、1 个 Windows 服务进程和 2 个 AppDomain。

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

What exactly is it you need to know or doesn't understand?

  • W3Wp.exe is the process IIS uses to run a AppPool in
  • AppPool is a IIS concept, doesn't exist in .Net
    • Each website application runs in it own AppDomain
    • AppPools is run multiple website applications inside the same process
  • AppDomain is a .Net concept that relates to how code executes inside your application, establishes boundaries and such.
    • From MSDN: Represents an application domain, which is an isolated environment where applications execute.
    • You can have many AppDomains inside the same process, but AppDomains cannot live across different processes.
    • Code in one AppDomain can create new AppDomains
    • You can communicate across AppDomain boundaries via Remoting
      • Technique for communicating with another AppDomain in the same process, in another process or even on a remote computer is the same.

All code in .Net has to be executed inside a AppDomain. If you're hosting your WCF service in your ASP.Net application the WCF service will run in the same AppDomain as your ASP.Net application (see WCF and ASP.Net http://msdn.microsoft.com/en-us/library/aa702682.aspx). In that context the AppDomain will be running in a AppPool inside IIS, but that hos nothing to do with .Net.

If you're hosting the WCF service in a Windows Service the WCF service will run inside the AppDomain created by the Windows Service, no AppPools involved here.

If your execution path is

  1. Client requests asp.net webpage hosted on IIS
  2. webpage requests WCF service hosted in a Windows Service

then there will be 1 AppPool, 1 W3Wp.exe process, 1 Windows Service process and 2 AppDomains involved.

I don't know if your question relates in any way to WCF service Appdomain details ?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文