WiX ne configure pas correctement son site

j'ai un installateur qui configure 2 sites Web, dont l'un a quelques applications sous la racine du site. Le site de niveau supérieur est configuré pour L'authentification Windows uniquement, comme suit:

<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>

les autres composants (optionnels) de l'installateur déclarent alors les applications / répertoires virtuels comme suit:

<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>

le comportement que je vois est ce que je m'attendrais 9/10 fois, mais par intermittence l'installateur installera le site" Site Web " avec les deux anonymes l'authentification et authentification windows, plutôt que l'application D'aide avec authentification anonyme. La seule explication à laquelle je peux penser est que le fait d'ajouter un répertoire/application virtuel sous un site racine fait parfois que la racine hérite des paramètres d'authentification enfant aussi bien que les siens.

Remarque: j'ai essayé de soulever ceci comme un bug sur le wixtoolset.org site, mais a continué à obtenir une erreur en essayant de faire si.

11
demandé sur Joeb454 2013-09-25 17:27:08

2 réponses

alternativement, vous pouvez écrire un script par lot pour créer un site web et appeler à partir de WIX comme action personnalisée.

fichier Batch

%systemroot%\system32\inetsrv\appcmd.exe add site /name:YourWebSite /PhysicalPath:%systemdrive%\inetpub\wwwroot /bindings:http/*:80:

WIX (product.wxs)

<CustomAction Id="CreateWebsite" Execute="deferred" Impersonate="no" Return="check" Directory="TARGETDIR" PatchUninstall="no" ExeCommand="Batchfilepath" />

<InstallExecuteSequence>
<Custom Action="CreateWebsite" Before="InstallFinalize">NOT Installed AND NOT PATCH</Custom>
</InstallExecuteSequence>

changez la valeur de votre attribut ExeCommand pour pointer vers le bon chemin de fichier par lots.

2
répondu Jeba 2015-06-03 12:53:07

la solution pour moi était de désactiver L'authentification anonyme au niveau du serveur.

il semble que lorsque ce flakiness se produit, il hérite du réglage du niveau du serveur, bien que je n'ai aucune idée pourquoi il se produit seulement parfois.

voici le script Powershell:

Set-WebConfigurationProperty-Filter " / system.webServer/sécurité/authentification/anonymousAuthentication" Nom-de-Permis -de la Valeur Faux -PSPath IIS:\

0
répondu Mark Watson 2017-06-15 09:20:22