Я создал установщик, в котором пользователь может выбрать веб-сайт из раскрывающегося списка (в раскрывающемся списке будут перечислены все доступные веб-сайты) и указать имя для виртуального каталога.
Код:
<iis:WebVirtualDir Id="PCVDir" Alias="[VDNAME]" Directory="dir_MDMCenter_0" WebSite="MySelectedWebSite">
<iis:WebApplication Id="PCWebApp" Name="[VDNAME]" WebAppPool="MyAppPool" />
</iis:WebVirtualDir>
<iis:WebAppPool Id="MyAppPool" Name="[APPPOOLNAME]" ManagedRuntimeVersion="v4.0" ManagedPipelineMode="integrated" Identity="localSystem" IdleTimeout="0" RecycleMinutes="0">
</iis:WebAppPool>
<iis:WebSite Id="MySelectedWebSite" Description="[MYWEB_WEBSITE_DESCRIPTION]">
<iis:WebAddress Id="AllUnassigned1" Port="[MYWEB_WEBSITE_PORT]" IP="[MYWEB_WEBSITE_IP]" Header="[MYWEB_WEBSITE_HEADER]" />
</iis:WebSite>
Когда пользователь устанавливает и выбирает веб-сайт, отличный от «Веб-сайт по умолчанию», виртуальный каталог всегда создается на «Веб-сайте по умолчанию».
Анализ:
Новый веб-сайт, который я создаю, работает на порту 80. Я остановил веб-сайт по умолчанию, поскольку он также работает на порту 80. Теперь, когда мы устанавливаем на другой веб-сайт, виртуальный каталог находится под веб-сайтом по умолчанию. Кажется, где-то в WIX или IIS есть привязка, говорящая, что порт 80 сопоставлен с веб-сайтом по умолчанию.
В журнале я проверил, что значения всех переменных (MYWEB_WEBSITE_DESCRIPTION, MYWEB_WEBSITE_PORT) приходят правильно. Но по-прежнему приложение находится на веб-сайте по умолчанию.
Может ли кто-нибудь поправить меня, если я что-то делаю не так.