文档首页> 服务器租用类> IIS事件ID 5:ASP缓存初始化失败解决指南

IIS事件ID 5:ASP缓存初始化失败解决指南

发布时间:2026-11-12 10:21        更新时间:2026-11-12 10:30

📌 问题现象

在 Windows Server(如 2012/2016/2019 等)搭配 IIS 以及 主机管理系统等环境时,系统事件查看器的“应用程序”日志中频繁出现 事件ID5 的警告或错误:

错误: 针对应用程序池 “aspxxxx” 的模板永久性缓存初始化失败,这是由于以下错误导致的:无法为应用程序池创建磁盘缓存子目录。数据可能包含其他错误代码。
来源: Active Server Pages
记录时间: 每天定时或频繁触发

核心特征:尽管系统日志不断报错,但前端网站及 ASP 业务访问完全正常,不受影响。

🔍 根本原因分析

  1. 为什么报错?
    IIS 的 ASP 引擎为了提升网站解析速度,会将预编译的模板和脚本缓存写入磁盘。默认缓存路径为 C:\inetpub\temp\ASP Compiled Templates。当 IIS 工作进程(w3wp.exe)尝试在此目录下为特定应用程序池创建子目录时,由于目录不存在或缺乏 NTFS 写入权限,导致初始化失败。

  2. 为什么没影响站点访问?
    这是 ASP 引擎的一种“降级保护”机制。磁盘缓存失败后,ASP 引擎会自动切换到内存缓存或实时编译模式。由于 Kangle 等前端代理依然正常工作,且脚本执行未受阻断,因此用户端访问无感知,但这会增加服务器 CPU 消耗并降低页面响应速度。

🛠️ 终极解决步骤

请以管理员身份运行命令提示符(CMD),严格按照以下顺序执行:

第一步:重建缓存目录

检查 C:\inetpub\temp\ 下是否丢失了 ASP Compiled Templates 文件夹。使用以下命令强制创建:

cmd
 
 
mkdir "%SystemDrive%\inetpub\temp\ASP Compiled Templates"

第二步:赋予正确的 NTFS 权限(核心)

IIS 需要特定的账户权限才能写入缓存。注意:以下两条命令必须分别在同一行内完整复制执行,切勿在中间回车换行,否则会报“无效参数”或“目录名称无效”错误。

cmd
 
 
icacls "%SystemDrive%\inetpub\temp\ASP Compiled Templates" /grant "IIS_IUSRS:(OI)(CI)(M)" /T
cmd
 
icacls "%SystemDrive%\inetpub\temp\ASP Compiled Templates" /grant "NT AUTHORITY\NETWORK SERVICE:(OI)(CI)(M)" /T

注:执行成功后应回显“已成功处理 1 个文件;处理 0 个文件时失败”。如果提示“0 个文件”,说明第一步的路径没建好。

第三步:重启 IIS 服务

使权限修改立即生效,并触发 IIS 重新初始化缓存:

cmd
 
 
iisreset

定期手动清理缓存文件(安全做法):如果 C:\inetpub\temp 占用空间过大,不要直接右键删除文件夹。请使用命令行安全清理:

cmd
 
iisreset /stop
del /s /q /f "C:\inetpub\temp\*.*"
iisreset /start