Назад | Перейти на главную страницу

Перемещение приложения IIS 7 на веб-сайт по умолчанию без его удаления и повторного создания

У меня IIS 7 настроен с неповрежденным «веб-сайтом по умолчанию» на порту 80, и я добавил несколько других веб-сайтов, параллельных ему в разделе «Сайты», все они работают на разных портах.

Я бы хотел, чтобы эти сайты существовали как вспомогательные приложения веб-сайта по умолчанию (то есть: все они работают на порту 80, доступны как ../SiteA ../SiteB), сохраняя при этом их текущие конфигурации.

Текущая настройка сайта:

Места

Требуется настройка сайта:

Места

Я мог бы просто удалить их и создать заново, но я хотел бы сохранить их конфигурации.

Редактировать: Текущая настройка -

Для пояснения - у меня есть существующие сайты, созданные в IIS, настроенные в IIS - я не хочу удалять их и воссоздавать, добавляя их на веб-сайт по умолчанию в качестве дополнительных приложений с нуля. Мне интересно, есть ли способ буквально переместить существующие приложения вместе с их конфигурациями (это означает, что у меня есть типы Mime, правила аутентификации, привязки и другие пользовательские настройки, которые я не хочу воссоздавать, если я могу этого избежать) .

Чтобы быть еще более конкретным, я думал, что смогу щелкнуть и перетащить один из сайтов сюда ONTO «Веб-сайт по умолчанию», эффективно перемещая его как вспомогательное приложение.

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

Для каждого сайта, который вы хотите использовать в качестве дополнительного приложения, щелкните правой кнопкой мыши на Default Website и выберите Add Application:

Затем укажите приложению в ваших существующих физических папках для сайта:

Теперь в зависимости от того, как вы защитили физические папки для SiteA, SiteB и SiteC, вам может потребоваться настроить разрешения NTFS, чтобы разрешить идентификацию пула приложений для любого пула приложений, в котором будут размещаться эти сайты.

Вы можете просто повторно использовать существующие пулы для SiteA, SiteB и SiteC кликнув Select сразу после Пул приложений серое текстовое поле.

В дополнение к вашему обновлению на вопрос:

Я думал, что смогу щелкнуть и перетащить один из сайтов сюда ONTO «Веб-сайт по умолчанию», эффективно перемещая его как вспомогательное приложение.

К сожалению, у IIS MMC нет такой возможности, это то, что вам нужно сделать вручную, и это можно сделать с помощью осторожного копирования, вставки и настройки параметров в IIS7. applicationHost.config файл.

Где найти конфигурацию (ы) вашего сайта

Если большинство параметров было настроено через интерфейс IIS MMC с использованием функций Mime, Default Document, Error Pages и т. Д., То эти параметры будут сохранены на ваших сайтах. web.config файлы под <system.webServer>. В таком случае делать особо нечего.

Однако, если настройки были настроены с помощью appcmd.exe инструмент командной строки или с помощью функции редактора конфигурации IIS MMC, и для местоположения фиксации было задано значение /commit:apphost (или ApplicationHost.config <location path="SiteX" /> при использовании редактора конфигурации) эти настройки будут сохранены непосредственно в основном файле конфигурации IIS7, который находится в:

%systemroot%\system32\inetsrv\config\applicationHost.config

Чтобы понять структуру applicationHost.config файл конфигурации, я бы порекомендовал прочитать следующее:

<system.applicationHost> - Сайт MS IIS.NET

Нажмите «Просмотр по схеме» на правой панели, которая покажет иерархию настроек.

Сайт определяется в <sites> коллекция, которая содержит, как вы могли догадаться, коллекцию <site> элементы. Есть несколько настроек, которые являются дочерними <site> элемент, который не имеет смысла проживать где-либо еще, например <bindings> коллекция, которая определяет IP-адрес сайта, заголовки узлов, порт для прослушивания и т. д.

О делегировании функций

При настройке функций сайта через пользовательский интерфейс MMC, способ сохранения параметра (сохраняется ли он на локальном сайте web.config файл или хранится в applicationHost.config Файл обычно контролируется тем, как настроено делегирование функций для этого параметра.

Вы можете найти инструмент конфигурации делегирования функций в разделе Management узла конфигурации сервера MMC IIS7:

Когда вы запустите это, вы увидите список (почти) всех настраиваемых функций вашего сервера:

Вкратце все, что настроено на Read Only будут заблокированы параметры конфигурации и могут быть настроены / сохранены только в applicationHost.config файл.

Любая функция, которая делегирована как Read/Write или Configuration Read/Write будут сохранены на сайте или в приложении web.config файл.

Предостережение к вышеизложенному заключается в том, что если вы использовали редактор конфигурации на уровне сайта для изменения любых делегированных параметров (Read/Write) то есть:

... и вы указали ApplicationHost.config <location path="SiteA" /> тогда настройка будет настроена обратно в applicationHost.config файл независимо от настройки делегирования для этой функции.

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

Копирование настроек неделегированных функций

Параметры неделегированных функций, которыми можно управлять для каждого сайта или приложения, хранятся в <location> элементы конфигурации в applicationHost.config файл. Они ведут себя так же, как <location> элемент в ASP.NET. Вот рабочий пример с использованием классических настроек ASP.

Классические настройки ASP по умолчанию не делегируются (для параметра Делегирование установлено значение Read Only в инструменте делегирования функций.

SiteA имеет свой Classic ASP Debugging Properties -> Send Errors To Browser настройка изменена на True (по умолчанию False):

Когда этот параметр применяется, он сохраняется в applicationHost.config файл и выглядит так:

<location path="SiteA">
  <system.webServer>
    <asp scriptErrorSentToBrowser="true" />
  </system.webServer>
</location>

Вам, вероятно, придется перейти к концу файла, чтобы найти это.

Теперь, если вы хотите скопировать этот параметр в новое приложение, находящееся на другом сайте, т.е. Default Website/SiteA затем скопируйте и вставьте вышеуказанный параметр и просто измените путь, чтобы он соответствовал точной иерархии:

<location path="Default Website/SiteA">
  <system.webServer>
    <asp scriptErrorSentToBrowser="true" />
  </system.webServer>
</location>

Это должно сработать в 99% случаев, и, не зная вашей точной конфигурации, было бы трудно предположить, что в 1% случаев требуется особое внимание.

Сноски

При работе с applicationHost.config файла всегда рекомендуется делать копию перед внесением каждого изменения. Делайте одно действие за раз, чтобы вы могли откатиться назад, если вы случайно полностью уничтожите IIS :)

Если вы работаете в 64-битной среде, вам понадобится такой инструмент, как Блокнот2 который имеет 64-битная версия чтобы иметь возможность редактировать и сохранять applicationHost.config файл. При выполнении этих операций вам также потребуется «Запуск от имени администратора».