2012-03-08 6 views
1
まずオフ、私はなど、

私はプログラム的にASP.NETの一時インターネットファイルを削除するにはどうすればよい

私はしばしばで、私のサイトを再起動している時に持っている問題を、パスを見つけるか、IOクラスを使用する方法を求めていないよ

Visual Studio(2010)(Win7)からの開発では、ASP.NET Temporary Internet Filesの以前の参照にまだまだ取り残されています。削除してしまうと、問題はなくなります。

手動で削除すると、ルートフォルダで削除する前に、サブフォルダの複数のレイヤをドリルダウンして内容を削除する必要があることがわかりました。

私は小さなユーティリティプログラムでプログラムを削除しようとしましたが、 "Run as Administrator"として起動したVSから1)を実行しても、権限エラー(UnauthorizedAccessException)が発生しました。 "管理者として実行"。

サブフォルダに手動でドリルダウンするよりもスムーズな回答はありますか?

ありがとうございます!

答えて

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、その後here's an answer PowerShellスクリプトでを使用している場合:あなたのために。あなたはそれが動作している間に一時フォルダを削除するためにそれを修正することができます。

+0

ありがとうございました!スクリプトは確実にフロントランナーです。奇妙なことは、何かをシャットダウンすることなく、私はtehmにドリルダウンするときに手動でファイルを削除できるということです(IISはそれ以上のことを許可しています)。 –

+0

@JohnSpiegel:おそらく、ロックはファイルロックの代わりにフォルダロックですか?私は決して気にしなかった:) –

関連する問題