2013-09-25 7 views
11

2つのWebサイトを設定するインストーラがありますが、そのうちの1つにルートサイトの下にアプリケーションがあります。トップレベルのサイトは以下のように、唯一のWindows認証用に構成されている:WiXは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> 

インストーラの他の(オプション)のコンポーネントは、次のようにアプリケーション/仮想ディレクトリを宣言:

<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認証の両方を「Webサイト」サイトにインストールします。これについて私が考えることができる唯一の説明は、ルートサイトの下に仮想ディレクトリ/アプリケーションを追加する行為によって、ルートが子認証設定とそれ自身を継承することがあることがあります。

メモ:私はwixtoolset.orgサイトのバグとしてこの問題を解決しようとしましたが、その際にエラーが発生し続けました。

+0

\あなたは今までの解像度を見つけましたこの問題に? –

+0

@Orenいいえ、残念ながら私はまだこれに対する解決策が見つかりませんでした。私たちは現在WiX 3.7を使用していますので、これについては3.8 – Joeb454

+0

で修正されているかどうかは言えません。私はこれをインストールして、しばらくして、両方の認証が有効になるようにします。うーん。 –

答えて

2

また、バッチスクリプトを作成してWebサイトを作成し、カスタムアクションとしてWIXから呼び出すこともできます。

バッチファイル

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

があなたのExeCommandを変更するには、正しいバッチファイルのパスを指すように属性値を。

0

私の回避策は、サーバーレベルで匿名認証を無効にすることでした。

この脆弱性が発生すると、サーバレベルから設定が継承されるように見えますが、なぜそれが時々起こるのかわかりません。

ここでPowerShellスクリプトです:

セットWebConfigurationProperty -Filter "/system.webServer/security/authentication/anonymousAuthentication" -Nameは-Value偽-PSPathのIISを有効:

関連する問題