在NTSD中检查我们的应用程序中的转储文件时,我运行了!DumpDomain
SOS命令。我期待只看到系统,共享和默认应用程序域,但此外还有一个名为/LM/W3SVC/2/ROOT-1-130793976001194923
的域,它已经加载了很多程序集。
此应用领域的来源是什么?目的是什么?我们的应用程序托管IIS - 是IIS创建此应用程序域?
答案 0 :(得分:3)
是的,IIS为每个网站创建一个AppDomain,如
/LM/W3SVC/2/Root/Website1-x-xxxxxxx
/LM/W3SVC/2/Root/Website2-x-xxxxxxx
如果其中一个.NET应用程序崩溃,则不会影响其他应用程序。
来自MSDN:
当请求首次输入托管代码(托管模块或处理程序)时,IIS ManagedEngine模块会创建一个应用程序域。然后,应用程序域执行必要的处理任务,例如使用Forms身份验证或托管代码提供的其他应用程序服务对用户进行身份验证。