You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

未安装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

火山引擎 最新活动