未知的应用域

Unknown app domain

在 NTSD 中检查我们应用程序的转储文件时,我 运行 !DumpDomain SOS 命令。我只希望看到系统、共享和默认应用程序域,但除此之外还有一个名为 /LM/W3SVC/2/ROOT-1-130793976001194923 的域,它加载了相当多的程序集。

这个应用域名从何而来,有何用途?我们的应用程序正在托管 IIS - IIS 是否正在创建此应用程序域?

是的,IIS 为每个网站创建一个 AppDomain,例如

/LM/W3SVC/2/Root/Website1-x-xxxxxxx
/LM/W3SVC/2/Root/Website2-x-xxxxxxx

如果其中一个 .NET 应用程序崩溃,不会影响其他应用程序。

来自MSDN

When a request first enters managed code (managed modules or handlers), the IIS ManagedEngine module creates an application domain. The application domain then performs necessary processing tasks, such as authenticating a user with Forms authentication or other application services provided by managed code.