У меня 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
файл конфигурации, я бы порекомендовал прочитать следующее:
Нажмите «Просмотр по схеме» на правой панели, которая покажет иерархию настроек.
Сайт определяется в <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
файл. При выполнении этих операций вам также потребуется «Запуск от имени администратора».