2011-01-18 20 views
2

これはWiX 3.0で動作していました。AppPoolが既に存在する場合WebAppPoolが失敗する - WiX 3.5

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="inetpubDir" Name="inetpub"> 
    <Directory Id="wwwrootDir" Name="wwwroot"> 
     <Directory Id="INSTALLDIR" Name="DS3000Services" FileSource="\Server\Implementation\DS3000Services\Web"> 
     <Component Id="DS3000ServicesVirtualDir" Guid="{4EFD7047-09F4-42e7-ACB5-A209D26B0338}"> 
      <CreateFolder /> 
      <iis:WebAppPool Id="AppPool" Name="[AppPoolName]" Identity="other" User="PortalUser" IdleTimeout="0" RecycleMinutes="0"> 
      <iis:RecycleTime Value="1:00" /> 
      </iis:WebAppPool> 
      <iis:WebVirtualDir Id="DS3000ServicesVirtualDir" Alias="[VIRTUALDIR]" Directory="INSTALLDIR" WebSite="DefaultWebSite"> 
      <iis:WebApplication Id="DS3000ServicesApp" Name="DS3000 Services" Isolation="medium" WebAppPool="AppPool" /> 
      </iis:WebVirtualDir> 
     </Component> 

ログインストール:勝利サーバー2008 R2のインストール

MSI (s) (10:E8) [09:57:58:553]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI14A0.tmp, Entrypoint: WriteIIS7ConfigChanges 
WriteIIS7ConfigChanges: Error 0x800700b7: Failed to add appPool element 
WriteIIS7ConfigChanges: Error 0x800700b7: Failed to configure IIS appPool. 
WriteIIS7ConfigChanges: Error 0x800700b7: WriteIIS7ConfigChanges Failed. 
CustomAction WriteIIS7ConfigChanges returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox) 
MSI (s) (10:4C) [09:57:58:585]: User policy value 'DisableRollback' is 0 
MSI (s) (10:4C) [09:57:58:585]: Machine policy value 'DisableRollback' is 0 
Action ended 9:57:58: InstallFinalize. Return value 3. 

を。 AppPoolは既に存在します。 AppPoolを削除すると、インストーラは成功します。何かご意見は?ありがとう...

+2

ウェブサイトをインストールするためにWixを使用すると思いますか?仕事後には硬い飲み物を飲む。あなたはそれに値する。 – Will

+0

これはWiX v3.6で修正される可能性があります。試してみる。ええ、非常にタイムリーな応答、私は知っている:-) –

+0

私の更新された答えを確認してください –

答えて

1

アプリケーションプールと共に仮想ディレクトリを作成するためのcustomActionを作成することをお勧めします。

私はその目的のために私のプロジェクトでカスタムアクションを使用しました。カスタムアクションでは、指定された名前のアプリケーションプールが存在するかどうかを確認できます。

を追加しました作り付けのコマンド

<Component Id="VDWeb" Guid="493E3487-AA4C-4476-8CC0-4B1C763AF6F7" Permanent="no"> 
    <iis:WebVirtualDir Id="VDir" Alias="[VDNAME]" Directory="dir_Application_0" WebSite="WebSelectedWebSite"> 
     <iis:WebApplication Id="WebApp" Name="[VDNAME]" WebAppPool="ABCAppPool" /> 
    </iis:WebVirtualDir> 
    <RegistryKey Root="HKLM" Action="createAndRemoveOnUninstall" Key="SOFTWARE\ABC\[ProductCode]\VirtualDirectory"> 
     <RegistryValue Name="VDName" Type="string" Value="[VDNAME]"/> 
    </RegistryKey> 
</Component> 

<Component Id="AppPool_1" Guid="414a377f-e044-49d5-b905-66bf3da6489f" Permanent="no"> 
    <util:User Id="PoolAccount" Domain="[DOMAINNAME]" Name="[LogonUser]" Password="[NT_PASSWORD]" CreateUser="no"> 
     <util:GroupRef Id="IISUsersGroup"/> 
    </util:User> 

    <iis:WebAppPool Id="ABCAppPool_NT" Name="[APPPOOLNAME_NT]" ManagedRuntimeVersion="v4.0" ManagedPipelineMode="integrated" Identity="other" User="PoolAccount"> 
     <iis:RecycleTime Value="05:00" /> 
    </iis:WebAppPool> 
</Component> 

<util:Group Id="IISUsersGroup" Name="IIS_IUSRS"/> 

<iis:WebSite Id="WebSelectedWebSite" Description="[WEB_WEBSITE_DESCRIPTION]"> 
    <iis:WebAddress Id="AllUnassigned1" Port="[WEB_WEBSITE_PORT]" IP="[WEB_WEBSITE_IP]" Header="[WEB_WEBSITE_HEADER]" /> 
</iis:WebSite> 

これを使用していますし、それは完全に正常に動作します。

関連する問題