应用程序域和应用程序池之间有什么区别?
我读过很多关于这两个术语的文章。但仍然无法正确理解他们。
请用简单的描述详细说明。
由于
答案 0 :(得分:28)
IIS进程是w3wp; IIS中的每个应用程序池都使用它自己的进程; AppPool1使用过程3784,AppPool2使用过程5044 Asp.net中的不同应用程序将使用不同的 AppDomain中;
AppTest1和AppTest2位于不同的AppDomain中,但是在 同样的过程。
使用它们有什么意义?
应用程序池和AppDomain,它们都可以提供 隔离,但使用不同的方法。应用程序池 使用该过程来隔离有效的应用程序 没有.NET。但AppDomain是另一种隔离方法 由.NET提供。 如果您的服务器托管了数千个网站,则不会使用 成千上万的应用程序池隔离了网站, 只是因为运行的进程太多会杀死操作系统。 但是,有时您需要应用程序池。其中一个 应用程序池的优点是可以配置 应用程序池的标识。你也有灵活性 回收应用程序池的选项。至少现在, IIS没有提供回收appdomain的明确选项。
应用程序池是一组一个或多个URL 不同的Web应用程序和Web站点。任何Web目录 或虚拟目录可以分配给应用程序池。 应用程序池中的每个应用程序共享相同的内容 工作进程可执行文件,W3wp.exe,工作进程 服务一个应用程序池与工作者分开 服务另一个的过程[就像启动MS Word和 打开很多单词文件]。每个单独的工人流程 提供进程边界,以便在应用程序出现时 分配给一个应用程序池,其他问题 应用程序池不会影响应用程序。这个 确保如果工作进程失败,则不会影响 在其他应用程序池中运行的应用程序[即] 例如,如果word文档有问题,它不应该 从逻辑上影响您的Excel表格不是它。 应用程序域是一种机制(类似于进程中的进程) 用于隔离执行软件的操作系统 彼此之间的应用程序,以便它们不会影响 彼此。 [即]打开MS WORD不会影响MS EXCEL 您可以随时打开和关闭这两个应用程序 应用程序之间没有依赖关系。每 应用程序域有自己的虚拟地址空间 使用该范围限定应用程序域的资源 地址空间。
感谢this链接
答案 1 :(得分:-2)
以简单的方式
为每个网站创建一个应用程序池。
涉及一个应用程序域目的的应用程序域。