Wix + IIS: создание виртуального каталога на веб-сайте с отключенными привязками для порта 80 - PullRequest
0 голосов
/ 18 августа 2010

У меня установлен Wix, который создает виртуальный каталог в IIS с помощью следующего:

<DirectoryRef Id="INSTALLLOCATION">
  <Component Id="VirtualDirectory" Guid="29BEECCC-AA5F-11DF-BBB1-9C0AE0D72085">
    <iis:WebVirtualDir Id="MyVDir" Directory="INSTALLLOCATION" Alias="MyVDir" WebSite="DefaultWebSite">
      <iis:WebApplication Id="MyApplication" Name="MyVDir" />
    </iis:WebVirtualDir>
    <CreateFolder />
  </Component>
</DirectoryRef>
<iis:WebSite Id="DefaultWebSite" Description="Default Web Site">
  <iis:WebAddress Id="AllUnassigned" Port="80" />
</iis:WebSite>

Однако это не удается, если привязки для порта 80 были удалены для этого веб-сайта.

Атрибуты <iis:WebAddress /> element и Port являются обязательными, однако в данном случае они совершенно лишние - мне все равно, что такое порт веб-сайта, если он создает мой виртуальный каталог!

Есть ли способ заставить вышеуказанный установщик успешно создать виртуальный каталог, не запрашивая у пользователя номер порта?

Ответы [ 2 ]

1 голос
/ 18 октября 2010

Я обнаружил, что до тех пор, пока указан атрибут SiteId, порт фактически игнорируется.Поэтому решение моей проблемы состояло в том, чтобы изменить мой элемент WebSite на:

<iis:WebSite Id="DefaultWebSite" Description="Default Web Site" SiteId="*">
  <iis:WebAddress Id="AllUnassigned" Port="1" />
</iis:WebSite>

Обратите внимание, что атрибут Port все еще требуется (и не может быть 0), однако игнорируется, даже если *Атрибут 1007 * равен * (это означает, что описание используется для идентификации сайта).

См. Элемент веб-сайта (документация WiX) для получения дополнительной информации.

1 голос
/ 19 августа 2010

Все виртуальные каталоги укоренены в веб-сайте. Элемент WebSite можно использовать для создания веб-сайта, если элемент WebSite находится под элементом Component, или для поиска веб-сайта, если нет. Элемент VirtualDir должен как-то ссылаться на элемент WebSite. Это дизайн IIS, таким образом, WiX моделирует таким образом.

Примечание. Можно утверждать, что элемент WebSite, не входящий в элемент Component, должен был называться "WebSiteSearch" или как-то так.

...