Як перенести сайт IIS 7 на інший сервер?


105

Мені цікаво, яка найкраща практика для переміщення веб-сайту на інший сервер (разом із усіма налаштуваннями тощо)

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

Просто цікаво, які були чужі переживання.


Корпорація Майкрософт лише рекомендує Веб-розгортання (після створення цього інструмента), тому перш ніж читати відповіді нижче, переконайтеся, що ви знаєте, для чого ви повністю на свій страх і ризик.
Лекс Лі

Відповіді:


134

Я б сказав, експортуйте свою конфігурацію сервера в менеджер IIS:

  1. У менеджері IIS натисніть серверний вузол
  2. Перейдіть до спільної конфігурації в розділі "Керування"
  3. Клацніть «Конфігурація експорту». (Ви можете використовувати пароль, якщо ви надсилаєте їх через Інтернет, якщо ви просто збираєтесь перенести їх через USB-ключ, тоді не вмикайте його.)
  4. Перемістіть ці файли на новий сервер

    administration.config
    applicationHost.config
    configEncKey.key 
    
  5. На новому сервері поверніться до розділу "Спільна конфігурація" та встановіть прапорець "Увімкнути спільну конфігурацію". Введіть місце розташування на фізичному шляху до цих файлів і застосуйте їх.

  6. Слід запросити пароль шифрування (якщо його встановлено) та скинути IIS.

БАМ! Іди пива!


8
Можливо, слід використовувати сервер імпорту або пакет сайту замість того, щоб просто копіювати файли, хоча я також не перевіряв цього. Але я знаю, що в applicationHost.config є шляхи до файлів, які не обов'язково будуть присутніми на новому сервері, що може призвести до його розриву. Крім того, вам, мабуть, слід згадати, що в Інтернеті не може бути БУДЬ-яких сайтів, тому цей процес не працює на поточну конфігурацію.
frogstarr78

16
Останній крок неможливо переоцінити. Критично важливі.
Реп

7
Не чудова ідея, якщо ви переходите на нову версію IIS. В іншому випадку це є способом зробити це.
Рой Тінкер

1
Мені цікаво, чи могло це спрацювати, бо не повинно: docs.microsoft.com/en-us/iis/manage/…
vaso123

1
Загальна конфігурація IIS не була розроблена як спосіб міграції налаштувань на всіх машинах, тому якщо ви потрапили в будь-яку проблему після цієї відповіді, кусайте себе і не звинувачуйте інших.
Лекс Лі

25

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

1
Дякую Біллу - я бачив цей інструмент, але був насторожений, оскільки він все ще був у бета-версії.
Калід

1
У 2016 році це все ще "сучасний стан", але з MSDEPLOY 3.6 справді важко працювати. Я сподіваюсь, що вони в якийсь момент роблять щось нове
Warren P

MSDeploy неправильно переніс сайти для нас. Ми закінчилися з одним сайтом, який містить додатки кожного з наших сайтів, тому вся структура була неправильною.
бріанарій

Безумовно, це рекомендований спосіб, і документація, наприклад docs.microsoft.com/en-us/iis/publish/using-web-deploy/… та docs.microsoft.com/en-us/iis/publish/using-web- розгортання /… є вирішальним для користувачів, щоб освоїти необхідні кроки та ключові моменти, на які вони повинні звернути увагу. Більшість питань в Інтернеті вже відповіли у статтях. Якщо люди витрачають достатньо часу на таке, Web Deploy не є "складним" інструментом для використання.
Лекс Лі

18

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


Дякуємо за посилання. Це також дозволило мені змінити ідентифікатор сайту та все інше, і мені не довелося встановлювати 10 різних додатків та 30 різних віртуальних каталогів. Велика заставка часу
2GDave

Оскільки цей підхід не піклується про основні залежності (модулі IIS тощо), використовуйте його на свій страх і ризик.
Лекс Лі

12

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

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

Після встановлення інструменту: Клацніть правою кнопкою миші ваш сервер або веб-сайт у консолі управління IIS, виберіть "Розгортати", "Експортувати додаток ..." та запустіть експорт.

На новому сервері імпортуйте експортований zip-архів таким же чином.


але це займає всі файли. чи є спосіб пропустити завантаження файлів? якщо ви, наприклад, мігруєте FTP Sever, він намагається забрати всі файли та зафіксувати їх.
RayofCommand

2
@RayofCommand - Вибираючи параметри розгортання, можна очистити список "Вміст" - тоді пакет не містить усіх файлів.
Джаф - Бен Дюгід

1
Але тільки при розгортанні сайту за сайтом .... не для цілого ходу сервера.
Етан Аллен

1
Після встановлення MS Web Deploy на сервері призначення (IIS8) консоль управління IIS не містить жодного з параметрів веб-розгортання.
бріанарі

1
У мене також немає меню "Розгортання" після встановлення пакета.
Адвокат диявола

3

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


3

Я не можу коментувати тему через відсутність представника. Інший коментатор заявив, що не можуть перейти від нижчої версії до вищої версії 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 майже однаковий, не містить інформацію про версію багатьох записів. Це було легко.

У applicationHost.config є набагато більше відмінностей. Деякі записи впорядковані по-різному, але в іншому випадку однакові, тому вам доведеться обрати кожну різницю і розібратися в ній.

Я поклав свої 7 7 експортних файлів у папку System32 \ inetsrv \ config \ Export до об’єднання.

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

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

Якщо хтось, хто може коментувати, згадує цю тему вниз - це, ймовірно, допоможе комусь іншому, як я, хто має багато сайтів на одному сервері зі складними конфігураціями.

З повагою,

Стюарт


Я фактично використовував відповідь Стюарта для об'єднаної міграції, мені все ще не подобається MS Web Deploy.
жує

1

У моєму випадку файли вже скопійовано, я знайшов найпростіший спосіб виконати кроки в цьому посібнику: https://www.ryadel.com/en/exporting-importing-app-pools-and-websites-configuration-bet between -multiple-iis-інстанції /

Я експортував AppPools / веб-сайти, скопіював XML-файли на цільовий сервер та імпортував AppPools, а потім веб-сайти. Працювали дуже добре. Це також ще один відмінний варіант для цього питання.


це просто дало мені помилки, вказуючи, що пул додатків за замовчуванням та веб-сайт за замовчуванням неможливо перезаписати ... немає буено.
devlin carnate

Спробуйте перейменувати параметри за замовчуванням на щось інше? і подивіться, чи створюються вони з описаним вище процесом?
Ральф

Це працювало для мене з IIS7.5 (2008) до IIS10 (2019). Appcmd спочатку дав мені помилки на "Веб-сайті за замовчуванням", який вже існує. Перейменування не вийшло, тому я видалив веб-сайт за замовчуванням. Потім імпорт запускався без помилок.
MTAdmin
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.