应用程序域

        所有的Windows应用程序都在一个进程里运行。进程拥有自己的像内存和核心对象这样的资源,同时线程则执行加载到进程里的代码。在同一个操作系统中,不同的进程间是互不干扰的,因此一个进程不可能意外地影响另外一个进程里的应用程序的执行。为了让多个应用程序运行在同一台计算机上,这种互不干扰是最基本的要求,这种安全要求不管某个应用程序发生了什么情况(甚至崩溃),都不会影响其它应用程序的运行。进程提供了很好的应用程序容错性,这也是为什么像IIS和COM+以高隔离模式运行时需要这些进程。

        在Windows中,进程存在的问题在于创建和管理进程需要耗费大量的资源,同时在大量使用进程时它们的伸缩性也不是很好。例如:你如果正在使用IIS,同时将大量的站点配置为隔离运行,那么每个站点都会有其专用的进程,而这些进程会消耗许多的资源(如内存)。

        .NET中的应用程序域与进程有相同的优点,但多个应用程序域可以运行在同一个进程中。

        应用程序域可以在同一个进程中安全的运行,这是因为CLR的代码校验功能确保允许代码之前代码可安全执行。这就提供了很强的伸缩性和可靠性。

        当ASP.NET作为IIS4/5的一部分运行时,它会使用应用程序域来执行每个ASP.NET应用程序的实例,由于每个ASP.NET应用程序会在自己的应用程序域中运行,因此它不会和同一台计算机中的其它ASP.NET应用程序发生冲突。同时ASP.NET会忽略您在IIS中所指定的进程隔离性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值