Иногда при развертывании кода .NET в IIS6 я не могу переименовать или удалить папку приложения .NET, потому что она используется. Единственное, что, кажется, исправляет, - это остановить службу w3svc, сделать то, что мне нужно, а затем запустить ее снова.
Это не идеально, когда на веб-сервере обслуживаются другие веб-приложения. Просто остановить этот конкретный виртуальный веб-сайт, похоже, тоже не сработает.
Есть лучший способ сделать это?
Попробуй это:
Перетащите файл AppOffline.aspx в каталог, в котором вы хотите внести изменения. Это позволит вам переименовать или удалить этот каталог или любые папки / файлы в нем. Я всегда развертываю с файлом с именем AppOfflineNOT.aspx. Затем удалите / замените «НЕ» по мере необходимости. Таким образом, вам не придется возиться с iis при обновлении вашего сайта.
Если вам действительно нужно часто это менять, вы можете,
Здесь есть аналогичный вопрос: Как заставить IIS7 освободить заблокированный файл?
Вот очень простой способ обойти все вышеперечисленное.
Это приведет к запуску и остановке службы и освободит все устаревшие процессы, прежде чем вы обновите свой код. Просто будьте готовы протолкнуть свой код, как только команда будет выполнена, чтобы никто не прыгнул на сервер и не создал блокировку. Обычно я пишу сценарий xcopy, который запускается сразу после этого.