Каковы возможные недостатки сайта IIS 7, имеющего соединение NTFS в качестве веб-корня?
Я пытаюсь найти способ развертывания кода ASP.NET с минимальным нарушением работы сайта. Одна мысль состояла в том, чтобы настроить сайт для обслуживания с узла NTFS c:\www\example.com
где
c:\www\example.com -> c:\www\example.com_r1234
Затем, когда новый код развернут, он копируется в c:\www\site.com_r1235
и соединение переназначено на
c:\www\example.com -> c:\www\example.com_r1235
Итак, мой вопрос: как это может повлиять на текущие запросы в IIS? Какие еще могут быть недостатки с точки зрения реакции IIS на изменения (если таковые имеются)? Будет ли это так же легко для конечного пользователя сайта, как я надеюсь?
(Я подумал об изменении веб-корня сайта с помощью командной строки, но мне действительно не нравится идея перенастроить IIS из-за ненужного оттока домена приложения или пула приложений, но я не знаю много о что происходит, когда настроенный физический путь сайта изменяется под нагрузкой)
Чтобы быть ясным, моя единственная проблема здесь - опыт моих конечных пользователей. Моя цель - не беспокоить их, а не удобство для меня.
3 ответа
способ развертывания кода ASP.NET с минимальным нарушением работы сайта.
Кажется, что эта цель и ваше предлагаемое решение не согласованы, потому что теперь у вас есть куча дополнительной работы или сценариев для каждого развертывания.
Одна вещь, которую я видел, - это установить svn-клиент на рабочий сервер, а рабочий сайт - это извлеченная копия определенного местоположения / ветви в дереве управления исходным кодом. Таким образом, по крайней мере, вам нужно только обновить измененные файлы для новых развертываний.
Я создал папку позади моего веб-корня с именем _images
C:\DEV\_IMAGES
затем скопировал в него кучу gif-файлов. Затем я создал символическую ссылку NTFS в моем корне, используя
C:\DEV\PROJECT\ROOT mklink /D webimages ..\_images
В Visual studio 2010 я "Показать все файлы" затем обновляю… и включаю новые "веб-изображения" в свой проект. Теперь я могу указать на...
img src='webimages/icon.gif'
Когда я запускаю приложение, оно прекрасно работает и на моей локальной машине.
Я не буду знать, работает ли он на реальном сервере (IIS 7), пока инфраструктура не справится с этим, кто-нибудь знает какие-либо проблемы, почему это не будет работать в производстве?
Я чувствую, что права есть, и если да, то какой отличный способ упростить общий доступ к папкам (всех типов) между веб-приложениями.
Я еще не пытался выразить это в TFS, поэтому, если у кого-то есть отзывы по этому поводу, дайте нам знать!
Это не будет работать, потому что IIS может подумать, что файл web.config изменился другой программой. IIS, вероятно, будет выдавать исключение System.Configuration.ConfigurationErrorsException. Я бы предложил написать какой-то скрипт, чтобы просто поменять домашний каталог сайта.