WiX и iis (невозможно подключиться к интернет-серверу) - PullRequest
1 голос
/ 16 февраля 2011

Я пытаюсь создать инсталлятор, где также создается веб-сайт. Я использую следующий код

....
<DirectoryRef Id="WEBFOLDER">
    <Component Id="WebLibraries" Guid="77532F98-BF0B-4b9d-98AF-15618691A090" KeyPath="yes">
        <iis:WebSite Id="DefaultWebSite" Description="Default Web Site" Directory="WEBFOLDER">
            <iis:WebAddress Id="AllUnassigned" Port="80" />
        </iis:WebSite>
    </Component>
</DirectoryRef>
....
<Feature Id="WebSite" Level="1" Title="Web site">
    <ComponentRef Id="WebLibraries" />
</Feature>
....

но когда я пытаюсь установить созданный пакет на компьютер, на котором не установлен iis, я получаю это сообщение, даже если не проверяю эту функцию:

не удается подключиться к информационному серверу в Интернете

Кто-нибудь может мне помочь с этой проблемой?

Заранее спасибо.

1 Ответ

2 голосов
/ 16 февраля 2011

Вы устанавливаете свой пакет на машине, где IIS не установлен. Чего бы вы ожидали? :)

Если серьезно, WiX IIsExtension (тот, который определяет элемент WebSite) использует компонент API IIS, чтобы фактически выполнить свою работу. Для WiX v3.0 для корректной работы требуется даже включение совместимости IIS 6 в IIS 7.

Ваш компонент, содержащий элемент WebSite, не подготовлен. это означает, что он всегда будет установлен. Когда он установлен, IIsExtension пытается создать определенный в нем веб-сайт (если мы расскажем об этом кратко).

Итак, я бы порекомендовал вам сделать следующее (если вы хотите просто пропустить часть IIS вашего установщика на таких машинах):

  • добавить условие запуска, чтобы проверить, установлен ли компонент IIS (вы можете положиться на свойство IISMAJORVERSION, определенное самим IIsExtension)
  • условие вашего компонента (или функции), который зависит от IIS, с условием "НЕ IISMAJORVERSION"

В результате, когда свойство IISMAJORVERSION не установлено (IIS не установлен), ваш компонент не будет запланирован для установки, а настраиваемые действия IIS не будут выполняться.

P.S. Свойство SKIPCONFIGUREIIS, которое я изначально имел в виду, является переключателем «все или ничего» и не подходит для вашего случая.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...