应用程序中运行了多少个 AppDomain?

Posted

技术标签:

【中文标题】应用程序中运行了多少个 AppDomain?【英文标题】:How many AppDomains are running in application? 【发布时间】:2014-08-31 10:01:55 【问题描述】:

如果我启动控制台、wpf 或 asp.net 应用程序,.Net 会创建任何 AppDomain 吗?我可以假设总是有一个 AppDomain 吗?

【问题讨论】:

AppDomains如何统计:***.com/a/388582/600559 【参考方案1】:

是的,适用于控制台模式应用和 WPF 应用。对于 ASP.NET 应用程序来说,它更加模糊,它使用 appdomains 来隔离网站。当一个网站对程序集进行影子复制时,它可以从一个站点迁移到另一个站点。

【讨论】:

【参考方案2】:

是的,总会有一个,除非您或您使用的任何第三方库创建新的AppDomains。

根据MSDN 一个AppDomain 是一个

应用程序执行的隔离环境

例如,当您的软件将一些不受信任的程序集作为加载项加载时,这可能很有用。您可以创建一个辅助AppDomain,在其中加载不受信任的程序集,然后执行它们的方法,而不会冒着影响原始AppDomain 的风险。

【讨论】:

以上是关于应用程序中运行了多少个 AppDomain?的主要内容,如果未能解决你的问题,请参考以下文章

多个 .NET AppDomain 的代码示例

在 ASP.NET 中的其他 AppDomain 中运行应用程序

在单个 AppDomain 上运行多个应用程序实例时如何防止属性覆盖?

在其中运行 wpf 应用程序后无法卸载 AppDomain

每个实例的 AppDomain 或进程?

关于进程线程应用程序域(AppDomain)