2017-08-03 3 views
0

Product.wsxwix v3 iis webAppPoolのIDプロパティを設定するには?

IISConfiguration

私はWiXのドロップダウンで、アプリケーションプールIDから、すべてのとりうる値を載せていきたいと思います。 iis:WebAppPoolのIDプロパティにAPP_POOL_IDENTITYを割り当てることができません。

IIS::私は、これらの要素のための制約を削除する

WebAppPool/@アイデンティティ属性の値は、 '[APP_POOL_IDENTITY]'、法的な選択肢の一つではありません。 'NETWORKSERVICE'、 'LocalServiceと'、 ' localSystem '、' other '、または' applicationPoolIdentity 'です。

答えて

1

これはCan I allow a user to choose either applicationPoolIdentity or specify a user using WiX-IIS extension?と似ていますが、やや複雑な答えがあります。

はい、可能ですが、xml属性の可能な組み合わせのそれぞれをコンポーネントとして、でコンポーネントグループを作成する必要があります。コンポーネントの各セットには独自のID、guidなどが必要です。ユーザーインターフェイスの入力オプションから、インストールするコンポーネントを決定します。この解決方法は少し冗長であるため、別のファイルに保存することをお勧めします。

異なる属性を必要とする2つのオプションの例を示します.1つはカスタムアプリケーションプールユーザー用、もう1つはapplicationPoolIdentity用です。 「CustomUser」コンポーネントは、必要なカスタムオプションのテンプレートとして使用します。プロパティ値を変更するだけでなく、WiX XMLが変更される場合は、追加のコンポーネントを指定する必要があります。

https://www.codeproject.com/Articles/115036/Creating-WIX-Installer-for-ASP-NET-Web-Applicationに基づいて。

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
    xmlns:iis="http://schemas.microsoft.com/wix/IIsExtension" 
    xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> 
    <Fragment> 
     <Property Id="IIS_WEBSITE" Value="root"/> 
     <Property Id="VIRTUAL_DIR_VAL" Value="myappdir" /> 

     <!-- +++++++++++++++++++ web app name properties initialize ++++++++++++++++++++ --> 
     <Property Id="WEB_APP_NAME" Value="myapp" /> 
     <Property Id="WEB_APP_USE_CUSTOM_APP_POOL_IDENTITY" Value="1" /> 

     <!-- +++++++++++++++++++ app pool identity properties initialize +++++++++++++++ --> 
     <Property Id="WEB_APP_POOL_IDENTITY_DOMAIN" Value="domain" /> 
     <Property Id="WEB_APP_POOL_IDENTITY_NAME" Value="user" /> 
     <Property Id="WEB_APP_POOL_IDENTITY_PWD" Hidden="yes" /> 

     <!-- Reference to IIS Website to install to, but not create --> 
     <iis:WebSite Id='rootwebsite' 
       Description='[IIS_WEBSITE]' 
       Directory='INSTALLFOLDER'> 
      <!-- This element has to be here or WiX does not compile. It’s ignored 
       in this case. --> 
      <iis:WebAddress Id="AllUnassignedHTTP" Port="80" /> 
      <iis:WebAddress Id="AllUnassignedHTTPS" Port="443" /> 
     </iis:WebSite> 

     <DirectoryRef Id="INSTALLFOLDER"> 

      <Component Id="InstallWebsiteCustomUser" Guid="[guid]" KeyPath="yes" Win64="yes"> 
      <Condition><![CDATA[WEB_APP_USE_CUSTOM_APP_POOL_IDENTITY = 1]]></Condition> 
      <util:User Id="WebAppPoolUser" 
         CreateUser="no" 
         Name="[WEB_APP_POOL_IDENTITY_NAME]" 
         Password="[WEB_APP_POOL_IDENTITY_PWD]" 
         Domain="[WEB_APP_POOL_IDENTITY_DOMAIN]" /> 
      <iis:WebAppPool Id="WebAppPoolCustom" 
          Name="[WEB_APP_NAME]" 
          Identity="other" 
          User="WebAppPoolUser" 
          ManagedPipelineMode="Integrated" 
          ManagedRuntimeVersion="v4.0" 
          RecycleMinutes="200" /> 
      <iis:WebVirtualDir Id="WebVirtualDirCustom" 
           Alias="[VIRTUAL_DIR_VAL]" 
           Directory="INSTALLFOLDER" 
           WebSite="rootwebsite"> 
       <!-- Turn the Virtual Directory into a web application. --> 
       <iis:WebApplication Id="WebApplicationCustom" 
            Name="[WEB_APP_NAME]" 
            WebAppPool="WebAppPoolCustom" /> 
      </iis:WebVirtualDir> 
      </Component> 

      <Component Id="InstallWebsite" Guid="[guid]" KeyPath="yes" Win64="yes"> 
      <Condition><![CDATA[WEB_APP_USE_CUSTOM_APP_POOL_IDENTITY <> 1]]></Condition> 
      <iis:WebAppPool Id="WebAppPool" 
          Name="[WEB_APP_NAME]" 
          Identity="applicationPoolIdentity" 
          ManagedPipelineMode="Integrated" 
          ManagedRuntimeVersion="v4.0" 
          RecycleMinutes="200"/> 
      <iis:WebVirtualDir Id="WebVirtualDir" 
           Alias="[VIRTUAL_DIR_VAL]" 
           Directory="INSTALLFOLDER" 
           WebSite="rootwebsite"> 
       <!-- Turn the Virtual Directory into a web application. --> 
       <iis:WebApplication Id="WebApplication" 
            Name="[WEB_APP_NAME]" 
            WebAppPool="WebAppPool" /> 
      </iis:WebVirtualDir> 
      </Component> 
     </DirectoryRef> 

     <ComponentGroup Id="IisConfiguration"> 
      <ComponentRef Id="InstallWebsiteCustomUser" /> 
      <ComponentRef Id="InstallWebsite" /> 
     </ComponentGroup> 
    </Fragment> 
</Wix> 
関連する問題