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

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

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

Просто интересно, что произошло с другими людьми.

Ответ 1

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

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

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

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

BAM! Иди, пиво!

Ответ 2

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

Чтобы создать пакет, выполните следующую команду (замените веб-сайт по умолчанию на имя вашего веб-сайта):

msdeploy.exe -verb:sync -source:apphostconfig="Default Web Site" -dest:package=c:\dws.zip > DWSpackage7.log

Чтобы восстановить пакет, выполните следующую команду:

msdeploy.exe -verb:sync -source:package=c:\dws.zip -dest:apphostconfig="Default Web Site" > DWSpackage7.log

Ответ 4

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

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

После установки инструмента: Щелкните правой кнопкой мыши ваш сервер или веб-сайт в консоли IIS Management Console, выберите "Deploy", "Export Application..." и выполните экспорт.

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

Ответ 5

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

Ответ 6

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

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

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

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

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

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

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

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

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

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

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

Привет,

Стюарт

Ответ 7

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

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