Путь к метабазе IIS для aspnet_compiler в IIS7
-
28-10-2019 - |
Вопрос
Я пытаюсь использовать aspnet_compiler через командную строку для создания и публикации веб-приложения, которое запущено на веб-сайте IIS7 по умолчанию.Я изо всех сил пытаюсь найти правильный синтаксис аргумента -m для указания пути к метабазе IIS.
Вся документация ссылается на пути к метабазе IIS6, которые имеют формат "LM / W3SVC / 1 / Root".Я наткнулся на эта информация, который указывает, что путь к метабазе IIS7 должен выглядеть как "MACHINE / WEBROOT / APPHOST / веб-сайт по умолчанию".
Фактическая команда тогда выглядит следующим образом:
aspnet_compiler -nologo -m "MACHINE/WEBROOT/APPHOST/Default Web Site/" \\productionwebserver\inetpub\websitefolder\
Это, однако, приводит к следующей ошибке: ошибка 1002:'MACHINE/WEBROOT/APPHOST/веб-сайт по умолчанию /' - это неправильно сформированный путь к метабазе IIS.
Мой веб-сайт по умолчанию называется "Веб-сайт по умолчанию".Я также исследовал использование синтаксиса указания виртуального пути и физического пути вместо пути к метабазе, например:
aspnet_compiler -nologo -v / -p ".."
(этот командный файл существует во вложенной папке проекта веб-сайта)
Это приводит к следующей ошибке: ошибка ASPCONFIG:Использование раздела, зарегистрированного как allowDefinition='MachineToApplication' за пределами уровня приложения, является ошибкой.Эта ошибка может быть вызвана тем, что виртуальный каталог не настроен как приложение в IIS.
Веб-сайт отлично строится из VS2010.
Решение
Используйте тот же путь, но убедитесь, что у вас установлен компонент совместимости метабазы IIS 6 для IIS 7,
http://learn.iis.net/page.aspx/125/metabase-compatibility-with-iis-7/
Другие советы
Вы пытались использовать тот же путь, что и для 6.0 - например, LM /W3SVC/1 /ROOT?