我有一个安装程序,它配置了 2 个网站,其中一个在根站点下有一些应用程序。顶级站点仅配置为 Windows 身份验证,如下所示:
<iis:WebSite Id="WebSite"
Description="Application"
Directory="WEBSITE_INSTALLLOCATION"
AutoStart="yes"
ConfigureIfExists="yes"
StartOnInstall="yes">
<iis:WebAddress Id="AllUnassigned" Port="80" />
<iis:WebApplication Id="WebApplication"
Name="Console"
WebAppPool="WebAppPool"/>
<iis:WebDirProperties Id="WebProperties"
AnonymousAccess="no"
WindowsAuthentication="yes"
AuthenticationProviders="NTLM,Negotiate"/>
</iis:WebSite>
然后安装程序中的其他(可选)组件声明应用程序/虚拟目录,如下所示:
<iis:WebVirtualDir Id="HelpWebSite" Alias="Help" Directory="ApexHelpDir" WebSite="WebSite">
<iis:WebApplication Id="HelpApp" Name="Help" WebAppPool="WebAppPool"/>
<iis:WebDirProperties Id="HelpProps" AnonymousAccess="yes" WindowsAuthentication="no"/>
</iis:WebVirtualDir>
我看到的行为是我所期望的 9/10 次,但安装程序将间歇性地安装具有匿名身份验证和Windows 身份验证的“网站”站点,而不仅仅是具有匿名身份验证的帮助应用程序。我能想到的唯一解释是,在根站点下添加虚拟目录/应用程序的行为偶尔会导致根继承子身份验证设置以及它自己的身份验证设置。
注意:我试图在 wixtoolset.org 网站上将此作为错误提出,但在尝试这样做时不断收到错误消息。