一、现象:
域控制器下的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 安装在域控制器上。