应用程序池模板永久性缓存初始化失败

时间:2022-01-25 22:00:58

一、现象:
  域控制器下的IIS 6.0,在事件查看器-应用程序中提示“应用程序池“AppPoolName”的模板永久性缓存初始化失败”的错误。
  具体为:
  事件类型:错误
  事件来源:Active Server Pages
  事件种类:无事件
  ID:5
  日期:
  事件:
  用户:
  计算机:
  描述:
  错误:应用程序池 'DefaultAppPool' 的模板永久性缓存初始化失败,这是由下列错误所导致: 无法创建应用程序池的磁盘缓存子目录。数据可能包含额外的错误代码。
  数据:0000: 05 00 00 00....
  可能还会出现以下症状: (出现于IIS6.0的服务器提升为DC)
  即使支持 HTTP 压缩的客户端发出了请求,临时文件夹(也称为缓存目录)中也不会存储任何压缩文件。
  ASP Compiled Templates 文件夹中不缓存任何文件。

二、原因:
  将成员服务器提升为域控制器 (DCPromo.exe) 的操作会重置某些文件夹的权限。在此操作过程中,有三个文件夹的访问控制列表 (ACL) 不能正确设置。
  三个文件夹是:
  systemroot\Help\IISHelp\Common
  systemroot\System32\Inetsrv\ASP Compiled Templates
  systemroot\IIS Temporary Compressed Files
  查看以上文件夹的权限,则会看到 IIS_WPG 或 NT AUTHORITY\NETWORK SERVICE 组没有这些文件夹的权限

三、解决:
  手动设置文件夹的权限
  1. 单击“开始”,再单击“Windows 资源管理器”,双击“我的电脑”,再双击系统驱动器(通常为驱动器 C),然后双击“WINDOWS”或“WINNT”。
  2. 双击“Help”,双击“iisHelp”,右键单击“common”,然后单击“共享和安全”。
  3. 单击“安全”,然后单击“添加”,键入 IIS_WPG,然后单击“确定”。
  4. 选中“IIS_WPG”,单击选中“读取和执行”、“列出文件夹内容”、“读取”复选框,然后单击“确定”
  5. 打开 systemroot\system32\inetsrv\ASP Compiled Templates 文件夹的“共享和安全”对话框,然后授予 IIS_WPG 组“完全控制”权限。
  6. 对 systemroot\IIS Temporary Compressed Files 文件夹重复步骤 5。

  手动设置 NT AUTHORITY\NETWORK SERVICE 的权限,请按照下列步骤操作:
  1. 单击“开始”,单击“运行”,键入 %systemroot%\Help\iisHelp,然后单击“确定”。
  2. 右键单击“Common”文件夹,然后单击“共享和安全”。
  3. 在“安全”选项卡上,单击“添加”,键入 NETWORK SERVICE,然后单击“确定”。
  4. 单击“NETWORK SERVICE”,单击以选中“读取和执行”、“列出文件夹内容”、“读取”复选框,然后单击“确定”
  5. 单击“开始”,单击“运行”,键入 %systemroot%\system32\inetsrv,然后单击“确定”。
  6. 右键单击“ASP Compiled Templates”文件夹,然后单击“共享和安全”。
  7. 在“安全”选项卡上,单击“添加”,键入 NETWORK SERVICE,然后单击“确定”。
  8. 单击“NETWORK SERVICE”,单击以选中“允许”下的“完全控制”复选框,然后单击“确定”
  9. 单击“开始”,单击“运行”,键入 %systemroot%,然后单击“确定”。
  10. 右键单击“IIS Temporary Compressed”文件夹,然后单击“共享和安全”。
  11. 在“安全”选项卡上,单击“添加”,键入 NETWORK SERVICE,然后单击“确定”。
  12. 单击“NETWORK SERVICE”,单击以选中“允许”下的“完全控制”复选框,然后单击“确定”

  完成这些步骤后,请重新启动 IIS Admin 服务。为此,请按照下列步骤操作:
  1. 单击“开始”,单击“运行”,键入 Services.msc,然后单击“确定”。
  2. 右键单击“IIS Admin”,然后单击“重新启动”。
(备注:实际操作中是 NT AUTHORITY\NETWORK SERVICE 没有对三个文件夹的权限)

四、建议:
  出于安全原因,不应将 IIS 安装在域控制器上。