我使用以下 Wix 代码在 IIS 中创建 WebApplication 并将其分配给特定的应用程序池。
<iis:WebAppPool Id="AppPool_Wcf" Name="$(var.WCF_APP_POOL)" />
<iis:WebSite Id="Web_site" Description="$(var.WEB_SITE_DESCRIPTION)" SiteId="[SITEID]">
<iis:WebAddress Id="Web_Address" Port="*"/>
</iis:WebSite>
<DirectoryRef Id="TARGETDIR">
<Directory Id="SITEPATH">
<Directory Id="WCF_VIRT_DIR" Name="$(var.WCF_VIRT_DIR)">
<Component Id="IIS_Wcf" Guid="$(var.deploy.wcf.guid)" KeyPath="yes">
<iis:WebVirtualDir Id="Wcf_VirtualDir" Alias="$(var.WCF_VIRT_DIR)" WebSite="Web_site" Directory="WCF_VIRT_DIR">
<iis:WebApplication Id="Wcf_Application" Name="$(var.WCF_VIRT_DIR)" WebAppPool="AppPool_Wcf" />
</iis:WebVirtualDir>
</Component>
</Directory>
</Directory>
</DirectoryRef>
应用程序池应该已经存在,因为它与其他一些应用程序共享。
如果它不存在,则设置成功,将 Web 应用程序分配给一个神秘的<Invalid Application Pool>
(可以在 Web 应用程序属性中看到)。该应用程序甚至可以工作!
如果找不到应用程序池,如何使安装失败?