Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iis 7 WIX 3.6 IIS 7安装程序导致';站点1未定义根应用程序,因此将忽略该站点;卸载时出错_Iis 7_Wix_Wix3.6_Windows Installer - Fatal编程技术网

Iis 7 WIX 3.6 IIS 7安装程序导致';站点1未定义根应用程序,因此将忽略该站点;卸载时出错

Iis 7 WIX 3.6 IIS 7安装程序导致';站点1未定义根应用程序,因此将忽略该站点;卸载时出错,iis-7,wix,wix3.6,windows-installer,Iis 7,Wix,Wix3.6,Windows Installer,我正在使用Wix 3.6将Web应用程序安装到IIS 7,安装工作正常,但使用添加/删除程序或MSIExec卸载应用程序时,我在IIS中遇到以下错误 执行此操作时出错。 细节: 应用程序“/”不存在 系统日志中的错误如下所示 站点1未定义根应用程序,因此将忽略该站点 使用MSIExec和/qb选项时卸载时的日志文件仅显示了这一个错误,并且似乎不会导致IIS中的默认网站目录损坏,但可能会导致此类问题 行动开始7:04:40:ExitDialog。调试:错误2726:未执行操作 已找到:ExitDi

我正在使用Wix 3.6将Web应用程序安装到IIS 7,安装工作正常,但使用添加/删除程序或MSIExec卸载应用程序时,我在IIS中遇到以下错误

执行此操作时出错。 细节: 应用程序“/”不存在

系统日志中的错误如下所示

站点1未定义根应用程序,因此将忽略该站点

使用MSIExec和/qb选项时卸载时的日志文件仅显示了这一个错误,并且似乎不会导致IIS中的默认网站目录损坏,但可能会导致此类问题

行动开始7:04:40:ExitDialog。调试:错误2726:未执行操作 已找到:ExitDialog安装程序遇到意外错误 正在安装此软件包。这可能表明此系统存在问题 包裹错误代码是2726。论点是:ExitDialog, 行动结束于7:04:40:ExitDialog。返回值0。行动结束 7:04:40:安装。返回值1

以下是wix文件的相关部分。如果有人有任何想法可以为我指出正确的方向,他们将不胜感激。提前谢谢

<Product
      Name="$(var.WebName)"
      Id="*"
      UpgradeCode="GUID"
      Manufacturer="MyCo"
      Version="$(var.ProductVersion)"
      Language="1033">
    <Package Id='*'
      InstallScope="perMachine"
          Manufacturer="MyCo"
          InstallerVersion="200"
          Languages="1033"
          Compressed="yes"/>

    <MajorUpgrade Schedule="afterInstallValidate"
      DowngradeErrorMessage='A later version of this application is already installed. Setup will now exit'></MajorUpgrade>

    <Media Id="1" Cabinet="MyProduct.cab" EmbedCab="yes" />

    <Property Id="IISROOT">
      <RegistrySearch Id="WEBROOT" Root="HKLM" Key="Software\Microsoft\InetStp" Name="PathWWWRoot" Type="raw" />
    </Property>
    <Property Id="WIXUI_INSTALLDIR" Value="FILEINSTALLDIR" Secure="yes" >
      <RegistrySearch Id="WIXUI_INSTALLDIR" Type="raw" Root="HKLM" Key="SOFTWARE\MyCo" Name="InstallDir" />
    </Property>
    <Property Id="WIXUI_VIRTUALDIR" Secure="yes" Value="VIRTUALDIR" >
      <RegistrySearch Id="WIXUI_VIRTUALDIR" Type="raw" Root="HKLM" Key="SOFTWARE\MyCo" Name="WixUiVirtualDir" />
    </Property>
    <Property Id="VIRTUALDIR" Secure="yes" Hidden="no" >
      <RegistrySearch Id="VIRTUALDIR" Type="raw" Root="HKLM" Key="SOFTWARE\MyCo" Name="VirtualDir" />
    </Property>
    <CustomAction Id="FILEINSTALLDIR" Property="FILEINSTALLDIR" Value="[IISROOT]\[VIRTUALDIR]" />

    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="IISROOT" Name=".">
        <Directory Id="FILEINSTALLDIR" Name="AppDirectory">
          <Component Id="MyCo_AppComponent" Guid="GUID">
            <File Source=...
    </Component>
        </Directory>
      </Directory>
    </Directory>

    <iis:WebSite Id="DefaultWebSite" Description="Default Web Site" SiteId="*">
      <iis:WebAddress Id="AllUnassigned" Port="1" />
    </iis:WebSite>

    <DirectoryRef Id="FILEINSTALLDIR">
      <Component Id="MyCoSiteComponent" Guid="GUID" KeyPath="yes">
        <iis:WebVirtualDir Id='AppComponentVirtDir' Alias='[VIRTUALDIR]' Directory='FILEINSTALLDIR'
                         WebSite='DefaultWebSite'>
          <iis:WebDirProperties Id="AppComponentVirtDirProperties"
                       AnonymousAccess="no" BasicAuthentication="no"
                       WindowsAuthentication="yes" />
          <iis:WebApplication Id='MyAppName' Name='[VIRTUALDIR]' Isolation='medium' />
        </iis:WebVirtualDir>
      </Component>        
    </DirectoryRef>


我发现我做错了什么,有一个注册表设置在查找中的名称与在删除中的名称不同,因为我没有在原始代码中包含它,我将在下面包含错误代码示例。注意注册表路径不同1)MyCo 2)MyCompany(这是为了演示目的,但你明白我的意思)。这导致默认网站损坏,必须更换。因此,简而言之,请确保您创建的注册表项名称命名正确!:)这是一个痛苦的时刻

其中,我从注册表中设置了值:

<Property Id="WIXUI_VIRTUALDIR" Secure="yes" Value="VIRTUALDIR" >
  <RegistrySearch Id="WIXUI_VIRTUALDIR" Type="raw" Root="HKLM" Key="SOFTWARE\MyCo" Name="WixUiVirtualDir" />
</Property>

在此处,我删除注册表设置:

<DirectoryRef Id="FILEINSTALLDIR">
  <Component Id="RegistryEntries" Guid="GUID">
    <RegistryKey Root="HKLM"
                 Key="SOFTWARE\MyCompany"
          Action="createAndRemoveOnUninstall">
      <RegistryValue Type="string" Name="WixUiVirtualDir" Value="[VIRTUALDIR]" />
    </RegistryKey>
  </Component>
</DirectoryRef>

我发现我做错了什么,有一个注册表设置在查找中的名称与在删除中的名称不同,因为我没有在原始代码中包含该设置,我将在下面包含错误代码示例。