Как программно удалить временные интернет-файлы ASP.NET - PullRequest
1 голос
/ 08 марта 2012

Прежде всего, я не спрашиваю, как найти путь или использовать классы ввода-вывода и т. Д.

У меня часто возникает проблема при перезапуске моего сайта в разработке из Visual Studio (2010) (Win7), он все еще цепляется за предыдущие ссылки на временные интернет-файлы ASP.NET, и я обнаружил, что, как только я их удаляю, проблема исчезает.

При удалении вручную я обнаружил, что должен развернуть несколько слоеввложенных папок и удалите их содержимое, прежде чем я смогу удалить их в корневой папке.

Я попытался программно выполнить удаление с помощью небольшой служебной программы, но получил ошибки прав доступа (UnauthorizedAccessException), даже когда я запускаю 1)из VS запускается как «Запуск от имени администратора» или при запуске моего exe-файла напрямую с помощью «Запуск от имени администратора».

У кого-нибудь есть более плавный ответ, чем при ручном просмотре подпапок?

Спасибо!

1 Ответ

3 голосов
/ 08 марта 2012

Это само по себе не решение, хотя причина, по которой вы не можете удалить файлы, заключается в том, что IIS или Cassini (встроенный веб-сервер Visual Studio) блокируют их.

Убейте пул приложений, на котором запущено приложение, если вы используете IIS, или закройте Visual Studio (или убейте сервер ASP.NET с его иконки в трее), если вы используете Cassini;затем вы можете удалить корневую папку в каталоге временных файлов ASP.NET.

Затем просто перезапустите пул приложений или 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, чтобы запустить и остановить его.Вы можете изменить его, чтобы удалить временную папку, пока она работает.

...