未安装IIS时如何防止Temporary ASP.NET Files文件夹被删除
解决未安装IIS时Windows 10更新删除Temporary ASP.NET Files的问题
我之前也碰到过一模一样的情况——用第三方Web服务器托管ASP.NET应用,每次Windows更新后那个v4.0.30319下的Temporary ASP.NET Files文件夹就没了,第三方服务没权限重建,aspnet_regiis.exe又因为没装IIS完全没法完成文件夹创建。给你几个亲测有效的解决办法:
方法1:手动创建文件夹并配置权限
这是最直接的应急方案,步骤很清晰:
- 定位目标路径:32位系统找
C:\Windows\Microsoft.NET\Framework\v4.0.30319,64位系统对应Framework64文件夹,在里面新建名为Temporary ASP.NET Files的文件夹 - 右键文件夹→「属性」→「安全」→「编辑」,添加你的第三方Web服务器运行账户(比如常见的
Network Service,或者你自定义的服务账户),给它分配读取、写入、修改权限,还要在高级权限里勾选「创建文件/写入数据」和「创建文件夹/附加数据」 - 应用设置后重启第三方Web服务器,就能正常加载ASP.NET应用了
方法2:用aspnet_compiler.exe自动创建并配置权限
这个工具是.NET Framework自带的,完全不需要依赖IIS,专门用来编译ASP.NET应用,同时会自动处理临时文件夹的创建和权限配置:
- 以管理员身份打开命令提示符(CMD)
- 导航到对应.NET版本的路径:
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319(64位系统换Framework64) - 执行命令(替换成你的应用根目录路径):
aspnet_compiler.exe -v / -p "D:\YourASPNetAppRoot"
- 命令执行完后,系统会自动生成
Temporary ASP.NET Files文件夹并配置好必要权限,重启服务器即可
方法3:自定义临时目录(一劳永逸)
最省心的办法是避开系统默认的临时目录,自己指定一个不会被Windows更新清理的路径:
- 打开应用的
web.config文件,在<system.web>节点下添加<compilation>配置:
<system.web> <!-- 替换成你自己的自定义路径,建议选非系统盘 --> <compilation tempDirectory="D:\CustomASPNetTemp" /> </system.web>
- 手动创建
D:\CustomASPNetTemp文件夹,给第三方Web服务器账户分配读写权限 - 重启Web服务器,之后Windows更新就不会碰这个自定义目录了,彻底解决问题
注意事项
- 所有操作都要以管理员身份执行,不然可能没法修改系统目录权限或创建文件夹
- 一定要确认第三方Web服务器的运行账户,权限给错了还是会出现加载错误
- 自定义临时目录尽量选非系统盘路径,避免被系统自带的清理工具误删
内容的提问来源于stack exchange,提问作者VG1




