2013-09-25 19 views
11

Ho un programma di installazione che configura 2 siti Web, uno dei quali ha alcune applicazioni nel sito radice. Il sito di livello superiore è configurato per l'autenticazione di Windows solo, come di seguito:WiX non sta configurando correttamente il sito IIS

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

Altri componenti (opzionale) nel programma di installazione quindi dichiarare applicazioni/directory virtuali come segue:

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

Il comportamento Sono vedere è quello che mi aspetterei 9/10 volte, ma a intermittenza il programma di installazione installerà il sito "Sito web" con autenticazione autenticazione anonima e, anziché solo l'applicazione Guida con autenticazione anonima. L'unica spiegazione a questo che posso pensare è che l'aggiunta di una directory/applicazione virtuale al di sotto di un sito di root occasionalmente fa sì che la root erediti sia le impostazioni di autenticazione dei figli che le proprie.

Nota: Ho cercato di sollevarlo come un errore nel sito wixtoolset.org, ma ho continuato a ricevere un errore quando cercavo di farlo.

+0

Hai mai trovare una soluzione a questo problema? –

+0

@Oren no, sfortunatamente non ho ancora trovato una soluzione a questo. Al momento utilizziamo il WiX 3.7, quindi non posso dire se è stato risolto a partire dal 3.8 – Joeb454

+0

ora che ci penso, ho visto questo comportamento. Ho questa installazione che ogni tanto sia abilitata l'autenticazione. Hmmmm. –

risposta

2

In alternativa, è possibile scrivere uno script batch per creare un sito Web e chiamare da WIX come azione personalizzata.

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

cambiare la vostra ExeCommand valore di attributo per indicare il percorso file batch corretto.

0

La soluzione per me era disabilitare l'autenticazione anonima a livello di server.

Sembra che quando si verifica questa falla, esso eredita l'impostazione dal livello del server, anche se non ho idea del motivo per cui accade solo a volte.

Ecco lo script PowerShell:

Set-WebConfigurationProperty -Filter "/system.webServer/security/authentication/anonymousAuthentication" -Name Abilitato -Value False -PSPath IIS: \