Как перенести сайт IIS 7 на другой сервер?


Мне интересно, что является наилучшей практики для переезда сайта на другой сервер (вместе со всеми настройками и т. д.)

  • вручную воссоздать сайт на новом сервере (не поддерживается по понятным причинам)
  • скопируйте applicationHost.файл настроек конфигурации
  • используйте appcmd для резервного копирования и восстановления
  • используйте MSDeploy для публикации сайта на новой машине
  • используйте сторонний инструмент

просто интересно каким был опыт других людей.

7 86

7 ответов:

Я бы сказал, экспорт конфигурации сервера в диспетчере IIS:

  1. В диспетчере IIS щелкните узел сервера
  2. перейти к общей конфигурации в разделе "Управление"
  3. Нажмите Кнопку "Экспорт Конфигурации". (Вы можете использовать пароль, если вы отправляете их через интернет, если вы просто собираетесь переместить их через USB-ключ, то не потейте.)
  4. переместить эти файлы на новый сервер

    administration.config
    applicationHost.config
    configEncKey.key 
    
  5. на новом сервере, перейти вернитесь в раздел " общая конфигурация "и установите флажок" Включить общую конфигурацию."Введите местоположение в физическом пути к этим файлам и примените их.

  6. он должен запросить пароль шифрования (если вы его установили) и сбросить IIS.

БАМ! Иди выпей пива!

MSDeploy может переносить все содержимое, конфигурацию и т. д. это то, что рекомендует команда IIS. http://www.iis.net/extensions/WebDeploymentTool

вот полезный сайт по использованию appcmd для экспорта / импорта конфигурации сайта. http://www.microsoftpro.nl/2011/01/27/exporting-and-importing-sites-and-app-pools-from-iis-7-and-7-5/

Microsoft Web Deploy v3 можете экспортировать и импортировать все ваши файлы, параметры конфигурации и т. д. Он помещает все это в zip-архив, готовый к импорту на новом сервере. Он даже может обновиться до более новых версий IIS (v7-v8).

http://www.iis.net/extensions/WebDeploymentTool

после установки инструмента: Щелкните правой кнопкой мыши ваш сервер или веб-сайт в консоли управления IIS, выберите "развернуть", " экспорт Приложение...- и пройдите через экспорт.

на новом сервере импортируйте экспортированный zip-архив таким же образом.

использование командной строки для экспорта одного или всех сайтов, а затем повторно импортировать на новый сервер. Это может быть iis7.0 или 7.5 при экспорте с помощью appcmd, пароли расшифровываются, а затем повторно импортируются, и они будут повторно зашифрованы.

Я не могу комментировать поток из-за отсутствия rep. Another комментатор заявил, что они не могут перейти с более низкой версии на более высокую версию IIS. Это верно, если вы не объединяете некоторые файлы, но если вы это сделаете, вы можете, поскольку я только что перенес свой сайт IIS 7.5 в IIS 8.0, используя ответ, опубликованный chews.

при создании экспорта (II7.5), есть два ключевых файла (администрирование.config и файл applicationhost.config), которые имеют ссылки на ресурсы на сервере IIS7.5. Например, DLL будет передаваться с открытым ключом и версией, специфичной для 7.5. Это не то же самое на сервере IIS8. Конфигурация функции также может отличаться (я гарантировал, что мои были идентичны). Есть некоторые новые функции в 8, которые никогда не будут существовать в 7.5.

Если вы достаточно смелы, чтобы объединить два файла - он будет работать. Мне пришлось удалить IIS один раз, потому что я испортил его, но получил его во второй раз.

Я использовал инструмент слияния (вне сравнения) и без чего-то эквивалентно это была бы огромная Пита-но было довольно легко с хорошим инструментом diff (пять минут).

чтобы выполнить слияние, файлы 8.0 должны быть разделены на экспортированные файлы 7.5 перед попыткой импорта. По большей части файлы 8.0 должны перезаписывать серверные материалы в экспортированных файлах 7.5, оставляя при этом определенные материалы для пула сайтов/приложений.

Я нашел эту администрацию.конфигурация была почти идентична, без информации о версии многих записей. Этот можно было легко.

applicationHost.конфиг имеет гораздо больше различий. Некоторые записи упорядочены по-разному, но в остальном идентичны, поэтому вам нужно будет выбрать каждую разницу и выяснить ее.

перед слиянием я поместил свои файлы экспорта 7.5 в папку System32\inetsrv\config\Export.

я слился из папки System32\inetsrv\config в папку System32\inetsrv\config\Export для обоих файлов, о которых я упоминал выше. Я нажал на все, что было в файлах за исключением определенного сайта теги/элементы (например, странице, customMetadata, сайты, проверки подлинности). Следует особо отметить, что было также много определенных для сайта блоков тегов "местоположение", которые я должен был сохранить, но у нового сервера был свой собственный блок тегов" местоположение " с определенными для сервера значениями по умолчанию, которые должны быть сохранены.

наконец, обратите внимание, что если вы используете учетные записи служб, эти кэшированные пароли являются нежелательными и должны быть повторно введены для ваших пулов приложений. Ни один из моих сайтов не работал изначально, но все это было требуется было повторно ввести пароли для всех моих пулов приложений, и я был запущен и запущен.

Если кто - то, кто может прокомментировать этот пост вниз поток-это, вероятно, поможет кому-то еще, как я, у кого есть много сайтов на одном сервере со сложными конфигурациями.

с уважением,

Стюарт

в моем случае файлы уже были скопированы, я нашел самый простой способ выполнить шаги в этом руководстве: https://www.ryadel.com/en/exporting-importing-app-pools-and-websites-configuration-between-multiple-iis-instances/

Я экспортировал AppPools / Websites, скопировал xml-файлы на целевой сервер и импортировал AppPools, а затем веб-сайты. Работать очень хорошо. Это также еще один отличный вариант для этого вопроса.