Как перенести сайт IIS 7 на другой сервер? - PullRequest
94 голосов
/ 29 января 2009

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

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

Просто интересно, что пережили другие.

Ответы [ 7 ]

122 голосов
/ 29 января 2009

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

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

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

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

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

21 голосов
/ 01 февраля 2009

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

17 голосов
/ 29 августа 2011

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

12 голосов
/ 08 августа 2013

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

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

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

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

3 голосов
/ 15 сентября 2016

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

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

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

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

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

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

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

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

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

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

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

С уважением,

Stuart

3 голосов
/ 13 марта 2011

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

0 голосов
/ 19 апреля 2018

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

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

...