我有一个安装程序,可以配置两个网站,其中一个网站在根目录下有一些应用程序。顶层网站仅配置为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>
我观察到的行为大多数情况下都符合预期,但是不时地安装程序会将“网站”网站以匿名身份验证和Windows身份验证一起安装,而不仅仅是带有匿名身份验证的帮助应用程序。我能想到的唯一解释是,在根站点下添加虚拟目录/应用程序的操作偶尔会导致根站点继承子认证设置以及自己的认证设置。
注意: 我试图在wixtoolset.org网站上报告此问题,但每次尝试时都出现错误。