Настройка AppPool элемента WebSite в WiX 3.6 - PullRequest
2 голосов
/ 17 мая 2011

У меня есть установщик WiX, который настраивает пару корневых веб-сайтов IIS, каждый из которых имеет несколько веб-приложений. У нас есть отдельный AppPool для каждого корня и помещаем каждое из веб-приложений в этот AppPool.

К сожалению, я не могу найти способ убедиться, что веб-сайты входят в их необходимые AppPools, и WiX настаивает на том, чтобы поместить их в DefaultAppPool.

Я что-то здесь упускаю?

  <Component Id="INPUT" Guid="{43302D85-55B5-4C99-8C07-8AF5ED419E0A}" Directory="dirBBD4B479DF2AD0441616B5EB11867FA6" KeyPath="yes">
    <iis:WebAppPool Id="INPUTPool" Name="RCMInput" ManagedPipelineMode="integrated" ManagedRuntimeVersion="v4.0"/>
  </Component>
  <Component Id="INPUTSITE" Directory="dirBBD4B479DF2AD0441616B5EB11867FA6" Guid="{E508497A-C485-4EB8-8A91-4299BD46291B}" KeyPath="yes">
    <iis:WebSite Id="INPUTROOT" Description="RCMInput" Directory="dirBBD4B479DF2AD0441616B5EB11867FA6" AutoStart="yes" >
      <iis:WebAddress Id="INPUTROOTADDRESS" IP="[RCMINPIP]" Port="443" Secure="yes" Header="[RCMINPHOST]" />
      <iis:WebVirtualDir Id="INPUTVD" Alias="InputApp" Directory="dir0AC030D54BBE340DFFCC71C2724F6BF1">
        <iis:WebApplication Id="INPUTWEBAPP" Name="InputApp" WebAppPool="RCMInpAppPool">
          <iis:WebApplicationExtension CheckPath="no" Extension="svc" Executable="[NETFRAMEWORKROOT]v2.0.50727\aspnet_isapi.dll" Verbs="GET,HEAD,POST,PUT,DELETE"/>
        </iis:WebApplication>
      </iis:WebVirtualDir>
      <iis:WebVirtualDir Id="INPUTVD2" Alias="Administration" Directory="dir78ADFB9F5CBB65D9A3E21EAB7F4C5911">
        <iis:WebApplication Id="INPUTWEBAPP2" Name="Administration" WebAppPool="RCMInpAppPool">
          <iis:WebApplicationExtension CheckPath="no" Extension="svc" Executable="[NETFRAMEWORKROOT]v2.0.50727\aspnet_isapi.dll" Verbs="GET,HEAD,POST,PUT,DELETE"/>
        </iis:WebApplication>
      </iis:WebVirtualDir>
    </iis:WebSite>
  </Component>

Ответы [ 3 ]

1 голос
/ 31 мая 2011

Не уверен, что он изменился в 3.6, но для 3.5, когда на AppPool есть ссылка в WebApplication, используйте Id, а не RCMInpAppPool используйте INPUTPool.

Вот отличный пример

1 голос
/ 19 мая 2011

Я полагаю, что когда вы ссылаетесь на имя AppPool «RCMInput» в WebApplication, оно не может разрешить его и по умолчанию использует пул приложений по умолчанию. Вы пытались запустить MSI с включенным ведением журнала и посмотреть, дает ли это какую-то дополнительную информацию?

Из командной строки

msiexec /i install.msi -L*v install.log

Есть хорошая запись в блоге о развертывании веб-приложений в WiX на http://ranjithk.com/2009/12/17/automating-web-deployment-using-windows-installer-xml-wix/, где он определяет AppPool в том же компоненте, что и WebApplication.

0 голосов
/ 24 апреля 2018

У меня была такая же проблема, но я наконец нашел решение для нее. Вместо того, чтобы вложить WebApplication (который ссылается на ваш пул приложений) в WebVirtualDir, поместите его прямо на свой веб-сайт. Итак, если у вас есть это:

<iis:WebSite Id='WebSite' Description='My Website' Directory="WebsiteDir">
   <iis:WebAddress Id='WebAddress' Port='80' />
   <iis:WebVirtualDir Id="VirtualDir" Alias="mywebsite" Directory="WebsiteDir">
       <iis:WebApplication Id="WebApplication" Name="MyWebApplication" WebAppPool="MyWebAppPool" />
   </iis:WebVirtualDir>
</iis:WebSite>

Заменить на это:

<iis:WebSite Id='WebSite' Description='My Website' Directory="WebsiteDir">
   <iis:WebAddress Id='WebAddress' Port='80' />
   <iis:WebVirtualDir Id="VirtualDir" Alias="mywebsite" Directory="WebsiteDir" />
   <iis:WebApplication Id="WebApplication" Name="MyWebApplication" WebAppPool="MyWebAppPool" />
</iis:WebSite>
...