Iis 7 如何初始化IIS web应用程序';WiX中的s物理路径凭据属性

Iis 7 如何初始化IIS web应用程序';WiX中的s物理路径凭据属性,iis-7,wix,wix3.5,wix-extension,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相关

更新:可能是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按照要求的方式安装,并希望找到答案。提前感谢。

听起来与以下问题非常相似:。检查这里提出的解决方案。@Yansklayarenko感谢Yan的链接。据我所知,这与我的问题无关,因为在我的情况下,应用程序池标识设置正确,并且对文件夹的应用程序池标识访问权限没有问题。我的问题是,虚拟目录配置为不使用应用程序池标识访问基础文件夹,而是使用另一个标识(名为“name”的用户帐户),该标识在我的环境中不存在。因此,问题不会出现在应用程序池属性上,而是出现在IIS中的虚拟目录(或应用程序本身)属性上……您尝试过吗?:-)这可能看起来不相关,但实际上您希望在安装中创建的用户在IIS中设置为该标识。我仍然建议您遵循我引用的答案中的第二点-在ConfigureIIs操作之后安排SchedSecureObjects操作,看看是否有任何影响。@Yansklayarenko我的MSI中没有SchedSecureObjects操作。。。我正在通过Orca查看CustomAction表内容,该操作应该出现在哪里?无论如何,我还是觉得我们彼此不了解。我的安装没有在我的环境中创建任何用户帐户。它已经存在并拥有所有必要的访问权限。我只需要告诉IIS,这个帐户应该用作应用程序池的标识(没问题,可以正常工作),并且我还希望使用相同的标识访问虚拟文件夹物理路径(仅此点不起作用)。啊,我明白了,很抱歉误解了。在这种情况下,我怀疑WiX-IIS扩展是否有现成的功能。您必须运行自定义操作(例如,使用适当的参数调用appcmd)才能完成此操作。