如何在WiX中初始化IIS Web应用程序的物理路径凭据属性

时间:2012-06-19 13:48:31

标签: iis-7 wix wix3.5 wix-extension

更新:可能是IIS或MSI版本依赖

此配置中出现此问题:

Windows Server 2008 R2标准版本6.1(版本7600),IIS 7.5.7600.16385,MSI v5.0.7600.16385

在第二个配置中,相同的MSI工作得很好:

Vista Enterprise SP2,IIS 7.0.6000.16386,MSI v4.5.6002.18005

原始问题:

我为我正在处理的新项目创建了WiX安装程序包,并且在将正确的Web应用程序注册到IIS7中时遇到了一些未解决的问题。

问题是我的Web应用程序注册了不正确的物理路径凭证属性值(通过关注Web应用程序节点然后打开其高级设置对话框,可以通过IIS7访问此属性)。安装我的应用程序后,该值将设置为具有用户名“name”的“特定用户”。当然,这样的用户在我的环境中不存在,当尝试在浏览器中打开它时,导致Web应用程序在500.19上失败。

因此,在安装应用程序后,我必须打开IIS并将“物理路径凭据”属性重置为“应用程序用户(传递身份验证)”,以强制Web应用程序使用应用程序池的标识访问其虚拟目录。手动更改该属性可以解决问题..

是否有人知道如何更改WiX行为,以便物理路径凭据可以直接设置为“应用程序用户”,而无需手动修复该值?

这是我用于配置解决方案的IIS部分的片段:

<?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>
    <!-- Install to default web site -->
    <iis:WebSite Id="DefaultWebSite" Description='Default Web Site'>
      <iis:WebAddress Id="AllUnassigned" Port="80" />
    </iis:WebSite>

    <DirectoryRef Id="WebSiteContentDir">
      <!-- Configuring app pool -->
      <Component Id="ApplicationPoolComponent" Guid="{MY-GUID}" KeyPath="yes">
        <util:User Id="ApplicationPoolUser" CreateUser="no"
               Domain="MYDOMAIN" Name="MYUSER"
               Password="MYPWD" />

        <iis:WebAppPool Id="ApplicationPool" Name="MyApp" Identity="other" User="ApplicationPoolUser"
                    ManagedPipelineMode="classic" ManagedRuntimeVersion="v4.0" />
      </Component>

      <!-- Configuring virtual dir -->
      <Component Id="VirtualDirComponent" Guid="{MY-GUID}" KeyPath="yes" >
        <iis:WebVirtualDir Id="VirtualDir" Alias="MyApp" Directory="WebSiteContentDir" WebSite="DefaultWebSite">
          <iis:WebDirProperties Id="VirtualDirProperties" WindowsAuthentication="yes" />
          <iis:WebApplication Id="WebApplication" Name="MyApp" WebAppPool="ApplicationPool" />
        </iis:WebVirtualDir>        
      </Component>

    </DirectoryRef>
  </Fragment>
</Wix>

Ww已经在其他项目上遇到过这个问题,并且总是使用powershell脚本来解决,该脚本修复了在安装过程中自动执行的属性值。我相信必须有一种方法让WiX以所要求的方式安装它,并希望找到答案。提前谢谢。

0 个答案:

没有答案