如何以编程方式删除ASP.NET临时Internet文件

时间:2012-03-08 18:34:12

标签: asp.net .net permissions

首先,我不会问如何找到路径或使用IO类等。

我遇到的问题通常是在Visual Studio(2010)(Win7)的开发中重新启动我的网站时,它仍然依赖于之前对ASP.NET临时Internet文件的引用,并且我发现了一旦我删除它们,问题就会消失。

手动删除,我发现我必须深入查看多层子文件夹并删除其内容,然后才能在根文件夹中删除。

我尝试以编程方式使用一个小实用程序执行删除操作,但是从VS开始执行权限错误(UnauthorizedAccessException),即使我运行1)#34;以管理员身份运行"或直接用"以管理员身份运行"。

开始我的exe

任何人都有比手动钻到子文件夹更平滑的答案吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

这本身不是解决方案,但是您无法删除文件的原因是因为IIS或Cassini(内置的Visual Studio Web服务器)正在锁定它们。

如果您正在使用IIS,请终止运行该应用程序的应用程序池;如果您正在使用Cassini,请关闭Visual Studio(或从其托盘图标中删除ASP.NET服务器);然后,您可以删除Temporary ASP.NET Files目录中的根文件夹。

然后只需重新启动应用程序池或Visual Studio(如果您关闭它)并重新开始工作!

如果您正在使用IIS且版本为7或更高版本,则可以运行命令行实用程序来阻止它:

appcmd start apppool /apppool.name: DefaultAppPool

为您完成批处理脚本会更容易:

@echo off
appcmd stop apppool /apppool.name: DefaultAppPool
del "C:\Windows\Microsoft.NET\Framework\vx.xxx.x\Temporary..." /f /q
appcmd start apppool /apppool.name: DefaultAppPool

如果您正在使用IIS 6.0,那么使用PowerShell脚本here's an answer启动和停止它。您可以修改它以在工作时删除临时文件夹。