2012-03-08 74 views
1

首先,我不问如何找到路径,或使用IO类等如何编程方式删除ASP.NET临时互联网文件

我经常重新启动我的网站时,问题从Visual Studio(2010)(Win7)开发,它仍然拘泥于之前对ASP.NET临时Internet文件的引用,并且我发现一旦删除它们,问题就会消失。

手动删除,我发现我必须深入的子文件夹的多层和删除其内容之前,我可以在根文件夹中删除。我试图以编程方式做删除与一个小实用程序,但获取权限错误(UnauthorizedAccessException),即使当我运行1)从VS启动为“以管理员身份运行”或直接启动我的exe时“以管理员身份运行”。

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

谢谢!

回答

3

这本身并不是一个解决方案,但你不能删除的文件的原因是因为IIS或卡西尼(内置Visual Studio的Web服务器)是把锁在他们身上。

杀应用程序池中运行的应用程序,如果你使用的是IIS,或关闭的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,然后用here's an answer PowerShell脚本来启动和停止它。您可以将其修改为在其工作时删除临时文件夹。

+0

谢谢!该脚本肯定是先行者。奇怪的是,没有关闭任何东西,我可以手动删除文件,当我深入tehm(所以IIS至少允许这么多)。 – 2012-03-08 19:04:45

+0

@JohnSpiegel:也许锁是文件夹锁而不是文件锁?我从来没有在意找到:) – 2012-03-08 19:06:03