В настоящее время у нас есть процесс, который приводит к повторному развертыванию веб-сайтов ASP.NET. Код сам по себе является приложением ASP.NET. Текущий метод, который работал довольно долгое время, состоит в том, чтобы просто зациклить все файлы в одной папке и скопировать их поверх файлов в корне.
Возникшая проблема заключается в том, что иногда файлы в конечном итоге используются и, следовательно, не могут быть скопированы. В прошлом это было непостоянно до такой степени, что это не имело значения, но на некоторых наших сайтах с большим трафиком это происходит в большинстве случаев.
Мне интересно, есть ли у кого-нибудь обходной или альтернативный подход к этому, о котором я даже не думал. В настоящее время мои идеи:
- Просто повторите каждый файл, пока он не заработает. Это приведет к ошибкам в течение короткого времени, хотя это и не так хорошо.
- Развертывание в новой папке и обновление webroot IIS в новой папке. Я не уверен, как это сделать, за исключением запуска приложения от имени администратора и запуска командных файлов, что очень неопрятно.
Кто-нибудь знает, каков наилучший способ сделать это, или если это возможно сделать # 2, не запуская приложение публикации как пользователь с правами администратора (готов предоставить ему специальные привилегии, но я бы предпочел прекратить если не считать администратора)?
Редактировать
Разъяснение инфраструктуры ... У нас есть 2 веб-сервера IIS 7 в NLB, которые запускают свои веб-корни с общего NAS (чтобы быть более понятным, они используют точно такой же веб-корень на NAS). Мы выполняем много развертываний, так что любой подход, который мы не можем автоматизировать, не будет жизнеспособным.