我在面试中不断被问到关于 AppDomains 的问题,我知道基础知识:
- 它们是应用程序中的隔离级别(使它们与应用程序不同)
- 他们可以有线程(使它们与线程不同)
- 一个 appdomain 中的异常不会影响另一个
- appdomains不能访问彼此的内存
- 每个 appdomain 可以有不同的安全性
我仍然不明白是什么让它们变得必要。我正在寻找一个合理的具体情况,当你会使用一个。
答案:
- 不受信任的代码
- 受核心应用程序保护
的不受信任/第 3 方插件通过隔离在具有安全限制的单独应用程序域中来防止损坏共享内存和对注册表或硬盘驱动器的非授权访问,从而保护应用程序或服务器。例如 ASP.NET 和 SQL Server 托管组件代码 - 可信代码
- 稳定性
应用程序细分为安全、独立的特性/功能 - 架构灵活性
在单个 CLR 实例或每个程序中运行多个应用程序的自由。
还要别的吗?