ASP.NET 临时文件清理

168

如果我不在Windows 2003 R2标准系统上使用IIS(6/7),那么我能否安全地删除此文件夹的内容:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root

如果是这种情况,您可以指引我查阅与ASP.NET运行时和维护任务相关的文档吗?

2个回答

175

是的,删除这些文件是安全的,尽管这可能会强制重新编译服务器上运行的任何 .NET 应用程序。

有关背景,请参阅 MSDN 上的 了解 ASP.NET 动态编译 文章。


谢谢你的回答,我真的希望有一天能够回报你! - Andrea Scarcella
48
值得注意的是,您不应删除Temporary ASP.NET Files文件夹本身,但可以清除其内容。 - Piedone
3
清理该文件夹后,InstallShield LE安装程序项目中的错误依赖版本检测得到修复(我的主程序集引用了EntityFramework 6.4,但IS打包了一个4.4,它在那个文件夹中)。 - Jerther
我在参考的文章中没有看到任何表明删除文件是安全的迹象。互联网上似乎要么说可以安全删除,要么说必须先停止IIS,那到底是哪种情况呢? - Russell Horwood
2
@NineTails 首先,停止与要删除的“.../Temporary ASP.NET/”下的应用程序文件夹相关联的应用程序池。否则,它将保持锁定状态。看起来是安全的可以删除。一旦您重新启动应用程序池并再次访问应用程序,文件将被重新生成。我遇到了一个问题,它正在尝试引用一个不存在的文件,但还没有找到根本原因。 - Inphinite Phractals

39

关于更新的操作系统(如Vista,Win7等)的最新情况说明 - 临时文件路径可能会根据几个变量而有所不同。下面的内容并非确定的,但是这是我遇到过的一些:

“temp”环境变量设置 - 那么它将是:

%temp%\Temporary ASP.NET Files

权限和哪个应用程序/进程(VS,IIS,IIS Express)正在运行.Net编译器。访问C:\WINDOWS\Microsoft.NET\Framework文件夹需要提升的权限,如果您不是在具有足够权限的帐户下开发,则可能使用此文件夹:

c:\Users\[youruserid]\AppData\Local\Temp\Temporary ASP.NET Files

有时可以通过以下方式设置机器或站点特定的配置文件来设置临时文件夹:

<compilation tempDirectory="d:\MyTempPlace" />

我在工作中有一个很奇怪的设置,我们默认不运行管理员权限,而且IT人员也有登录脚本来设置%temp%,所以我得到的临时文件会因编译的内容而存在三个不同的位置! 我仍然不确定这些路径是如何选择的...唉。

不过,dthrasher 是正确的,你可以删除这些文件,VS和IIS会根据需要重新编译它们。


14
你的说法不正确。C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files 文件夹中仍然包含动态编译的程序集。 - Ross Presser
2
实际上,这两个都有——我有一些系统使用的是 Framework 文件夹,另一些系统则是 AppData 文件夹……我会看看能否找出它们之间的差异……arg。 - Jester
我猜如果你的网站在IIS上运行,它总是会在Framework下。 - Ross Presser
2
转念一想,也许这取决于您的应用程序池使用的身份。 - Ross Presser

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接