开发者

Confusing terminologies pertaining to Application Pool, Worker Process and Application Domain

开发者 https://www.devze.com 2023-02-15 22:34 出处:网络
Edit 1 I am confused with the statement below, taken from What ASP.NET Programmers Should Know About Application Domains :

Edit 1

I am confused with the statement below, taken from What ASP.NET Programmers Should Know About Application Domains :

You’ve created two ASP.NET applications on the same server, and have not done any special configuration. What is happening?

A single ASP.NET worker process will host both of the ASP.NET applications. On Windows XP and Windows 2000 this process is named aspnet_wp.exe, and the process runs under the security context of the local ASPNET account. On Windows 2003 the worker process has the name w3wp.exe and runs under the NETWORK SERVICE account by default.

He said that there is one worker process spawns 2 application domains--one application dom开发者_如何学Goain for each asp.net application.

But when I see the running processes as follows,

Image 1

Confusing terminologies pertaining to Application Pool, Worker Process and Application Domain

Image 2

Confusing terminologies pertaining to Application Pool, Worker Process and Application Domain

w3wp.exe is said as IIS Worker Process rather than application pool or application domain.

Questions:

  1. Is application domain equal to application pool?
  2. The confusing thing is in image 1. Why does Host Process Windows Service svchost.exe spawns 2 IIS Worker Process w3wp.exe? In my understanding, a process can only contain application domains, not other processes.


Application domain aka AppDomain (its class representation) is an encapsulated environment inside a .NET runtime where assemblies are loaded and running.

Usually there is one AppDomain/Application domain per managed process but can be more. Here the article refers to 2 AppDomains inside the same w3wp3.exe process.

You can see number of AppDomains loaded in any process using perfmon.exe

To answer your question, usually one AppDomain is created per one AppPool. But it is possible to load extra AppDomains manually in the AppPool by the application - but that would be very uncommon.

Update

I think you are using Process Explorer of the Sysinternals. Ignore the way it shows the tree structure in there, it only illustrates which process has spawned other processes. In fact it shows most processes underneath explorer since explorer has been used to load it.

Also SVCHOST.exe is an unmanaged executable and although it can host CLR and load AppDomains, it normally does not do that.

Confusing terminologies pertaining to Application Pool, Worker Process and Application Domain

Confusing terminologies pertaining to Application Pool, Worker Process and Application Domain

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号