StoreFront

安装、设置、升级和卸载

安装和配置之前

要安装和配置 StoreFront,请按顺序完成以下步骤:

  1. 如果要使用 StoreFront 来向用户交付 Citrix Virtual Apps and Desktops 资源,请确保 StoreFront 服务器已加入包含相应用户帐户的 Microsoft Active Directory 域或与用户帐户域之间存在信任关系的域。

    重要:

    • 对于单服务器部署,可以在未加入域的服务器上安装 StoreFront。
    • StoreFront 可以安装在域控制器上。
  2. StoreFront 要求安装 Microsoft .NET Framework,如果尚未安装,可以从 Microsoft 下载。必须先安装 Microsoft .NET,才能安装 StoreFront。

  3. (可选)如果要配置多服务器 StoreFront 部署,请为 StoreFront 服务器设置一个负载平衡环境。

    要使用 Citrix ADC 进行负载平衡,应定义一个虚拟服务器作为 StoreFront 服务器的代理。有关通过配置 Citrix ADC 实现负载平衡的详细信息,请参阅使用 Citrix ADC 进行负载平衡

    1. 确保在 Citrix ADC 设备上启用负载平衡。

    2. 对于每个 StoreFront 服务器,根据需要使用 StoreFront 监视器类型创建各 HTTP 或 SSL 负载平衡服务。

    3. 通过配置服务将客户端 IP 地址插入转发给 StoreFront 的请求的 X-Forwarded-For HTTP 标头中,覆盖任何全局策略。

      StoreFront 需要使用用户的 IP 地址来与其资源建立连接。

    4. 创建虚拟服务器并将服务绑定到虚拟服务器。

    5. 在虚拟服务器上,使用客户端 IPCookie 插入方法配置持久性。确保生存时间 (TTL) 足够长,以使用户能够根据需要在尽可能长的时间内保持登录到服务器。

      持久性可确保仅对初始用户连接进行负载平衡,此后来自该用户的后续请求将定向到同一台 StoreFront 服务器。

  4. (可选)启用以下功能。

    • .NET Framework 功能 > .NET Framework、ASP.NET

    (可选)在 StoreFront 服务器上启用以下角色及其依赖项。

    • Web 服务器 (IIS) > Web 服务器 > 常见 HTTP 功能 > 默认文档、HTTP 错误、静态内容、HTTP 重定向

    • Web 服务器 (IIS) > Web 服务器 > 运行状况和诊断 > HTTP 日志记录

    • Web 服务器 (IIS) > Web 服务器 > 安全性 > 请求筛选、Windows 身份验证

      StoreFront 安装程序将检查是否已启用上述所有功能和服务器角色。

  5. 安装 StoreFront

    如果计划将服务器作为服务器组的一部分,则这些服务器之间的 StoreFront 安装位置和 IIS Web 站点设置、物理路径和站点 ID 必须一致。

  6. (可选)如果计划使用 HTTPS 来确保 StoreFront 与用户设备之间的连接安全,请将 Microsoft Internet Information Services (IIS) 配置为支持 HTTPS。

    智能卡身份验证必须使用 HTTPS。默认情况下,Citrix Workspace 应用程序需要使用 HTTPS 来连接应用商店。要配置 IIS,以便您可以在 StoreFront 中使用 HTTPS hostbaseURL,请创建与默认 Web 站点的 HTTPS 绑定,并将其链接到 StoreFront 服务器证书。有关将 HTTPS 绑定添加到 IIS 站点的详细信息,请参阅保护 StoreFront 部署的安全

  7. 确保防火墙和其他网络设备允许从企业网络内部和外部访问 TCP 端口 80 或 443(如果适用)。此外,确保内部网络的任何防火墙或其他设备均不阻止通信流向任何未分配的 TCP 端口。

    安装 StoreFront 时,配置一个 Windows 防火墙规则,允许通过从所有非保留端口中随机选择的 TCP 端口访问 StoreFront 可执行文件。此端口用于在服务器组的各 StoreFront 服务器之间实现通信。

  8. 如果要使用多个 Internet Information Services (IIS) Web 站点,请在 IIS 中创建 Web 站点后,使用 PowerShell SDK 在其中每个 IIS Web 站点中创建一个 StoreFront 部署。有关详细信息,请参阅多个 Internet Information Services (IIS) Web 站点

    注意:

    StoreFront 会在检测到多个站点时禁用管理控制台并针对该影响显示一条消息。

  9. 使用 Citrix StoreFront 管理控制台配置服务器

安装 StoreFront

重要

为避免安装 StoreFront 过程中可能会出现的错误和数据丢失情况,请务必关闭所有应用程序,并且不要在目标系统中运行任何其他任务或操作。

  1. 从下载页面下载安装程序。

  2. 使用具有本地管理员权限的帐户登录 StoreFront 服务器。

  3. 请务必在服务器上安装所需的 Microsoft .NET Framework。

  4. 找到 CitrixStoreFront-x64.exe,然后以管理员身份运行此文件。

  5. 阅读并接受许可协议,然后单击下一步

  6. 如果显示检查必备项页面,请单击下一步

  7. 在已做好安装准备页面上,检查所列的安装必备项和 StoreFront 组件,然后单击安装

    在安装组件之前,如果服务器尚未配置以下角色,则会启用这些角色。

    • Web 服务器 (IIS) > Web 服务器 > 常见 HTTP 功能 > 默认文档、HTTP 错误、静态内容、HTTP 重定向

    • Web 服务器 (IIS) > Web 服务器 > 运行状况和诊断 > HTTP 日志记录

    • Web 服务器 (IIS) > Web 服务器 > 安全性 > 请求筛选、Windows 身份验证

    • Web 服务器 (IIS) > 管理工具 > IIS 管理控制台、IIS 管理脚本和工具

    如果尚未配置以下功能,则同时会启用这些功能。

    • .NET Framework 功能 > .NET Framework、ASP.NET
  8. 安装完成后,单击完成。Citrix StoreFront 管理控制台自动启动。您还可以从“开始”屏幕打开 StoreFront。

    “确认”对话框

  9. 在 Citrix StoreFront 管理控制台中,单击创建新部署

    1. 基本 URL 框中指定 StoreFront 服务器的 URL。
    2. 应用商店名称页面上,指定应用商店的名称,然后单击下一步

Delivery Controller 页面上,输入提供您希望在应用商店中提供的资源的 Citrix Virtual Apps and Desktops 部署。

  1. 设置传输类型端口,例如 HTTP 和端口 80,或 HTTPS 和端口 443,然后单击确定

  2. 远程访问页面上,选择“无”。如果要使用 Citrix Gateway,请选择无 VPN 通道,然后输入网关详细信息。

  3. 远程访问页面上,选择“创建”。创建完应用商店之后,单击完成

现在,用户已可以通过 Citrix Receiver for Web 站点访问您的应用商店,这使用户能够通过 Web 页面访问其桌面和应用程序。

此时将显示一个 URL,用户可使用该 URL 访问新应用商店的 Citrix Receiver for Web 站点。例如:example.net/Citrix/StoreWeb/。登录后,您将在 Citrix Workspace 应用程序中访问新的用户界面。

Citrix Receiver for Web 站点

从命令提示窗口安装 StoreFront

  1. 使用具有本地管理员权限的帐户登录 StoreFront 服务器。

  2. 安装 StoreFront 之前,请务必满足 StoreFront 安装的要求。有关详细信息,请参阅安装和配置之前

  3. 浏览您的安装介质或下载软件包,找到 CitrixStoreFront-x64.exe,然后将该文件复制到服务器上的一个临时位置。

  4. 从命令提示窗口中,导航到包含安装文件的文件夹并键入以下命令。

    CitrixStoreFront-x64.exe [-silent] [-INSTALLDIR installationlocation] [-WINDOWS_CLIENT filelocation\filename.exe] [-MAC_CLIENT filelocation\filename.dmg]
    <!--NeedCopy-->
    

    使用 -silent 参数可无提示安装 StoreFront 及其必备项。默认情况下,StoreFront 安装在 C:\Program Files\Citrix\Receiver StoreFront 下。但是,可以使用 -INSTALLDIR 参数指定其他安装位置,其中 installationlocation 为 StoreFront 的安装目录。如果计划将服务器作为服务器组的一部分,则这些服务器之间的 StoreFront 安装位置和 IIS Web 站点设置、物理路径和站点 ID 必须一致。

    默认情况下,如果 Citrix Receiver for Web 站点检测不到 Windows 或 Mac OS X 设备上的 Citrix Workspace 应用程序,系统将提示用户从 Citrix Web 站点下载和安装适合其平台的 Citrix Workspace 应用程序。您可以修改此行为,以使用户从 StoreFront 服务器下载 Citrix Workspace 应用程序安装文件。有关详细信息,请参阅配置资源对用户的显示方式

    如果要更改此配置,请指定 -WINDOWS_CLIENT-MAC_CLIENT 参数,以将 Citrix Receiver for Windows 或适用于 Windows 的 Citrix Workspace 应用程序以及 Citrix Receiver for Mac 或适用于 Mac 的 Citrix Workspace 应用程序安装文件分别复制到 StoreFront 部署中的适当位置。将 filelocation 替换为包含要复制的安装文件的目录,并将 filename 替换为安装文件的名称。Citrix Receiver for Windows 或适用于 Windows 的 Citrix Workspace 应用程序以及 Citrix Receiver for Mac 或适用于 Mac 的 Citrix Workspace 应用程序安装文件都包含在 Citrix Virtual Apps and Desktops 安装介质中。

CEIP

如果您参与 Citrix 客户体验改善计划 (CEIP) 时,系统会向 Citrix 发送匿名统计数据和使用情况信息以提高 Citrix 产品的质量和性能。

默认情况下,安装 StoreFront 时会自动为您注册 CEIP。大约在您安装 StoreFront 七天后第一次上载数据。可以在注册表设置中更改此默认设置。如果在安装 StoreFront 之前更改注册表设置,则将使用该值。如果在升级 StoreFront 之前更改注册表设置,则将使用该值。

警告:

注册表编辑不当会导致严重问题,可能需要重新安装操作系统。Citrix 无法保证因注册表编辑器使用不当导致出现的问题能够得以解决。使用注册表编辑器需自担风险。在编辑注册表之前,请务必进行备份。

控制自动上载分析数据的注册表设置(默认值为 1):

Location: HKLM:\Software\Citrix\Telemetry\CEIP
Name: Enabled
Type: REG_DWORD
Value: 0 = disabled, 1 = enabled
<!--NeedCopy-->

默认情况下,Enabled 属性在注册表中处于隐藏状态。当它保持未指定时,启用自动上载功能。

使用 PowerShell 时,以下 cmdlet 禁用在 CEIP 中注册:

New-ItemProperty -Path HKLM:\SOFTWARE\Citrix\Telemetry\CEIP -Name Enabled -PropertyType DWORD -Value 0

注意:

注册表设置控制同一台服务器上所有组件的匿名统计数据和使用情况信息的自动上载。例如,如果您已将 StoreFront 和 Delivery Controller 安装在同一台服务器上,并决定使用注册表设置选择退出 CEIP ,则选择退出将应用到这两个组件。

从 StoreFront 收集的 CEIP 数据

下表提供了收集的匿名信息的类型示例。数据中不包含任何识别出您是客户的详细信息。

数据 说明
StoreFront 版本 指示安装的 StoreFront 版本的字符串。例如,“3.8.0.0”
应用商店计数 表示部署中的应用商店数量的计数器。
服务器组中的服务器计数 表示服务器组中的服务器数量的计数器。
每个应用商店的 Delivery Controller 计数 指示可供部署中每个应用商店使用的 Delivery Controller 数量的数值列表。
启用 HTTPS 指示是否为部署启用 HTTPS 的字符串(“True”或“False”)。
Citrix Receiver for Web 的 HTML5 设置 字符串列表,指示每个 Receiver for Web 站点的 HTML5 Receiver 设置(“Always”、“Fallback”或“Off”)。
为 Citrix Receiver/Workspace 应用程序启用的工作区控制 布尔值列表,指示是否为每个 Receiver for Web 站点启用“工作区控制”(“True”或“False”)。
为应用商店启用远程访问 字符串列表,指示是否为部署中的每个应用商店启用“远程访问”(“ENABLED”或“DISABLED”)。
网关计数 表示部署中配置的 Citrix Gateway 数量的计数器。

Citrix Analytics 服务

如果您是 Citrix Cloud 客户,并且具有本地 StoreFront 部署,则可以配置 StoreFront,以便将数据发送到 Citrix Cloud 中的 Citrix Analytics 服务。配置后,Citrix Workspace 应用程序以及从 HTML5 兼容的浏览器访问的 Citrix Receiver for Web 站点将用户事件发送到 Citrix Analytics 进行处理。Citrix Analytics 聚合有关用户、应用程序、端点、网络和数据的衡量指标,以全面了解用户行为。要在 Citrix Analytics 文档中阅读有关此功能的信息,请参阅使用 StoreFront 载入 Virtual Apps and Desktops 站点

要配置此行为,请执行以下操作:

  • 从 Citrix Analytics 下载配置文件。
  • 使用 PowerShell 将 Citrix Analytics 数据导入到本地 StoreFront 部署中。

配置 StoreFront 后,当 Citrix Analytics 服务请求时,Citrix Workspace 应用程序可以从 StoreFront 应用商店发送数据。

重要:

为了此功能正常工作并使用 Citrix Cloud 服务,您的 StoreFront 部署必须能够通过端口 443 联系以下地址:

  • https://*.cloud.com
  • https://*.citrixdata.com

从 Citrix Analytics 下载配置文件

重要:

初始配置需要包含敏感信息的配置文件。下载后保持文件安全。请勿与组织外部的任何人共享此文件。配置后,可以删除此文件。如果需要在另一台计算机上重新应用配置,可以从 Citrix Analytics 服务管理控制台重新下载该文件。

  1. 使用管理员帐户登录 Citrix Cloud (https://citrix.cloud.com/)。
  2. 选择 Citrix Cloud 客户。
  3. 单击管理打开 Citrix Analytics 服务管理控制台。

    Analytics 磁贴

  4. 在 Citrix Analytics 服务管理控制台中,选择设置 > 数据源
  5. 在“Virtual Apps and Desktops”卡中,选择 () 菜单图标,然后选择连接 StoreFront 部署
  6. 在“连接 StoreFront 部署”页面上,选择下载文件以下载 StoreFrontConfigurationFile.json 文件。

示例配置文件

{
  "customerId": "<yourcloudcustomer>",
  "enablementService": " https://api.analytics.cloud.com /casvc/<yourcloudcustomer>/ctxana/v1/cas/<yourcloudcustomer>/XenDesktop/<deviceid>/dsconfigdata",
  "cwsServiceKey": "PFJTPn…….. T4=",
  "enablementServiceStatus": " https://api.analytics.cloud.com /casvc/<yourcloudcustomer>/ctxana/v1/cas/storefront/config",
  "instanceId": "d98f21d0-56e0-11e9-ba52-5136d90862fe",
  "name": "CASSingleTenant"
}
<!--NeedCopy-->

其中

customerId 为当前 Citrix Cloud 客户的唯一 ID。

cwsServiceKey 为标识当前 Citrix Cloud 客户帐户的唯一密钥。

instanceID 是生成的 ID,用于对从 Citrix Workspace 应用程序发送到 Citrix Analytics 的请求进行签名(确保安全)。如果您向 Citrix Cloud 注册多个 StoreFront 服务器或服务器组,则每个服务器或服务器组都具有唯一的 instanceID。

将 Citrix Analytics 数据导入到 StoreFront 部署中

  1. StoreFrontConfigurationFile.json 文件复制到本地 StoreFront 服务器(或 StoreFront 服务器组中的一个服务器)上的合适的文件夹。以下命令假定该文件保存到桌面。
  2. 打开 PowerShell ISE 并选择以管理员身份运行
  3. 运行以下命令:

    Import-STFCasConfiguration -Path "$Env:UserProfile\Desktop\StoreFrontConfigurationFile.json"
    Get-STFCasConfiguration
    <!--NeedCopy-->
    
  4. 此命令返回导入数据的副本,并在 PowerShell 控制台中显示该数据。

    get stf cas configuration

注意:

安装在 Windows Server 2012 R2 上的本地 StoreFront 服务器可能需要手动安装 C++ 运行时软件组件,以便它们可以注册到 CAS。如果在安装 Citrix Virtual Apps and Desktops 期间安装了 StoreFront,则不需要执行此步骤,因为 CVAD Metainstaller 已安装 C++ 运行时组件。如果仅使用未安装 C++ 运行时的 CitrixStoreFront-x64.exe Metainstaller 安装了 StoreFront,则在导入 CAS 配置文件后,它可能无法注册到 Citrix Cloud。

将 Citrix Analytics 数据传播到 StoreFront 服务器组

如果要对 StoreFront 服务器组执行这些操作,则必须将导入的 Citrix Analytics 数据传播到服务器组的所有成员。在单个 StoreFront 服务器部署中不需要执行此步骤。

要传播数据,请使用以下方法之一:

  • 使用 StoreFront 管理控制台。
  • 使用 PowerShell cmdlet Publish-STFServerGroupConfiguration

检查 StoreFront 服务器组 ID

要检查您的部署是否已成功注册到 Citrix Analytics 服务,可以使用 PowerShell 来发现部署的 ServerGroupID。

  1. 登录到您的 StoreFront 服务器或服务器组中的一台 StoreFront 服务器。
  2. 打开 PowerShell ISE 并选择以管理员身份运行
  3. 运行以下命令:

    $WebConfigPath = "C:\Program Files\Citrix\Receiver StoreFront\Framework\FrameworkData\Framework.xml"
    $XMLObject = (Get-Content $WebConfigPath) -as [Xml]
    $XMLObject.framework.properties.property
    <!--NeedCopy-->
    

    例如,这些命令生成如下所示的输出:

    name value
    ---- -----
    ClusterId 8b8ff5c8-44ba-46e4-87f0-2df8cff31432
    HostBaseUrl https://storefront.example.com/
    SelectedIISWebSiteId 1
    AdminConsoleOperationMode Full
    <!--NeedCopy-->
    

停止从 StoreFront 向 Citrix Analytics 发送数据

  1. 打开 PowerShell ISE 并选择以管理员身份运行
  2. 运行以下命令:

    Remove-STFCasConfiguration

    Get-STFCasConfiguration

    如果以前导入的 Citrix Analytics 数据已被成功删除,Get-STFCasConfiguration 将不返回任何内容。

  3. 如果要对 StoreFront 服务器组执行这些操作,请传播所做的更改并从服务器组的所有成员中删除导入的 Citrix Analytics 数据。在服务器组中的一个服务器上,运行以下命令:

    Publish-STFServerGroupConfiguration

  4. 在任何其他服务器组成员上,运行以下命令以确认已成功从组中的所有服务器中删除 Citrix Analytics 配置:

    Get-STFCasConfiguration

  5. 使用管理员帐户登录 Citrix Cloud (https://citrix.cloud.com/)。
  6. 选择 Citrix Cloud 客户。
  7. 单击管理打开 Citrix Analytics 服务管理控制台。
  8. 在 Citrix Analytics 服务管理控制台中,选择设置 > 数据源
  9. 在 Virtual App and Desktops 卡中,选择 StoreFront 部署计数:

    StoreFront 服务器组

  10. 通过引用其主机基本 URL 和 ServerGroupID 来确定要删除的 StoreFront 部署。
  11. 在 () 菜单中,选择从 Analytics 中删除 StoreFront 部署

    StoreFront 服务器组

注意:

如果要从服务器端而非从 Citrix Analytics 中删除配置,StoreFront 部署条目将保留在 Citrix Analytics 中,但不会从 StoreFront 接收任何数据。如果仅从 Citrix Analytics 中删除配置,则 StoreFront 部署条目将在下次应用程序池回收时重新添加(在 IIS 重置时或每 24 小时自动完成)。

将 StoreFront 配置为使用 Web 代理联系 Citrix Cloud 并注册到 Citrix Analytics

如果 StoreFront 位于 Web 代理后面的主机 Web 服务器上,注册到 Citrix Analytics 将失败。如果 StoreFront 管理员在其 Citrix 部署中使用 HTTP 代理,绑定到 Internet 的 StoreFront 流量必须通过 Web 代理传输,然后才能到达云中的 Citrix Analytics。StoreFront 不会自动使用托管操作系统的代理设置;需要进行额外的配置来指示应用商店通过 Web 代理发送出站流量。可以通过向应用商店 web.config 文件中添加新部分来配置 <system.net> 代理配置。请对 StoreFront 服务器上将用于将数据发送到 Citrix Analytics 的每个应用商店执行此操作。

方法 1:通过 PowerShell 为一个或多个应用商店设置应用商店代理配置(推荐)

运行 PowerShell 脚本 Config-StoreProxy.ps1 会为一个或多个应用商店自动执行此过程,并自动插入有效 XML 以配置 <system.net>。该脚本还将应用商店 web.config 文件备份到当前用户的桌面,从而允许在必要时还原未修改的 web.config 文件。

注意:

多次运行脚本可能会导致添加 <system.net> XML 的多个副本。每个应用商店应该只有 <system.net> 的一个条目。添加多个副本会阻止应用商店代理配置正常工作。

  1. 打开 PowerShell ISE 并选择以管理员身份运行

  2. $Stores = @("Store","Store2") 设置为包括您希望使用 Web 代理配置的应用商店。

  3. 请指定以下任一项:

    • IP 地址,或
    • Web 代理的 FQDN
  4. 运行以下 PowerShell:

    $Stores = @("Store","Store2")
    $ProxyIP = "10.0.0.1"
    $ProxyFQDN = "proxyserver.example.com"
    $ProxyPort = 8888
    
    # Set this for every Store using Stores array
    function Set-StoreProxyServer() # Tested with both IP and FQDN
    {
        [CmdletBinding()]
        param([Parameter(Mandatory=$true,ParameterSetName="ProxyIP")][Parameter(Mandatory=$true,ParameterSetName="ProxyFQDN")][array]$Stores,
            [Parameter(Mandatory=$true,ParameterSetName="ProxyIP")][string]$ProxyIP,
            [Parameter(Mandatory=$true,ParameterSetName="ProxyFQDN")][string]$ProxyFQDN,
            [Parameter(Mandatory=$true,ParameterSetName="ProxyIP")][Parameter(Mandatory=$true,ParameterSetName="ProxyFQDN")][int]$ProxyPort)
    
        foreach($Store in $Stores)
        {
            Write-Host "Backing up the Store web.config file for store $Store before making changes..." -ForegroundColor "Yellow"
            Write-Host "`n"
    
            if(!(Test-Path "$env:UserProfile\desktop$Store"))
            {
                Write-Host "Creating $env:UserProfile\desktop$Store\ directory for backup..." -ForegroundColor "Yellow"
                New-Item -Path "$env:UserProfile\desktop$Store" -ItemType "Directory" | Out-Null
                Write-Host "`n"
            }
    
            Write-Host "Copying c:\inetpub\wwwroot\Citrix$Store\web.config to $env:UserProfile\desktop$Store..." -ForegroundColor "Yellow"
            Copy-Item -Path "c:\inetpub\wwwroot\Citrix$Store\web.config" -Destination "$env:UserProfile\desktop$Store" -Force | Out-Null
    
            if(Test-Path "$env:UserProfile\desktop$Store\web.config")
            {
                Write-Host "$env:UserProfile\desktop$Store\web.config file backed up" -ForegroundColor "Green"
            }
            else
            {
                Write-Host "$env:UserProfile\desktop$Store\web.config file NOT found!" -ForegroundColor "Red"
            }
            Write-Host "`n"
    
            Write-Host "Setting the proxy server to $ProxyAddress for Store $Store..." -ForegroundColor "Yellow"
            Write-Host "`n"
    
            $StoreConfigPath = "c:\inetpub\wwwroot\Citrix$Store\web.config"
            $XMLObject = (Get-Content $StoreConfigPath) -as [Xml]
    
            if([string]::IsNullOrEmpty($ProxyFQDN))
            {
                $ProxyServer = ("HTTP://$ProxyIP"+":"+$ProxyPort)
            }
            else
            {
                $ProxyServer = ("HTTP://$ProxyFQDN"+":"+$ProxyPort)
            }
    
            $XMLObject = (Get-Content $StoreConfigPath) -as [Xml]
    
            # Create 3 elements
            $SystemNet = $XMLObject.CreateNode("element","system.net","")
            $DefaultProxy = $XMLObject.CreateNode("element","defaultProxy","")
            $Proxy = $XMLObject.CreateNode("element","proxy","")
            $Proxy.SetAttribute("proxyaddress","$ProxyServer")
            $Proxy.SetAttribute("bypassonlocal","true")
    
            # Move back up the XML tree appending new child items in reverse order
            $DefaultProxy.AppendChild($Proxy)
            $SystemNet.AppendChild($DefaultProxy)
            $XMLObject.configuration.AppendChild($SystemNet)
    
            # Save the modified XML document to disk
            $XMLObject.Save($StoreConfigPath)
    
            Write-Host "Getting the proxy configuration for c:\inetpub\wwwroot\Citrix$Store..." -ForegroundColor "Yellow"
            $XMLObject = (Get-Content $StoreConfigPath) -as [Xml]
            $ConfiguredProxyServer = $XMLObject.configuration.'system.net'.defaultProxy.proxy.proxyaddress | Out-Null
            Write-Host ("Configured proxy server for Store $Store"+": "+ $ConfiguredProxyServer) -ForegroundColor "Green"
            Write-Host "`n"
        }
        Write-Host "Restarting IIS..." -ForegroundColor "Yellow"
        IISReset /RESTART
    }
    
    Set-StoreProxyServer -Stores $Stores -ProxyFQDN $ProxyFQDN -ProxyPort $ProxyPort
    # OR
    Set-StoreProxyServer -Stores $Stores -ProxyIP $ProxyIP -ProxyPort $ProxyPort
    <!--NeedCopy-->
    
  5. 检查 C:\inetpub\wwwroot\Citrix< Store>\web.config 现在是否包含在 web.config 文件末尾的新 <system.net> 部分中。

            </dependentAssembly>
        </assemblyBinding>
    </runtime>
    <system.net>
        <defaultProxy>
        <proxy proxyaddress="HTTP://proxyserver.example.com:8888" bypassonlocal="true" />
        </defaultProxy>
    </system.net>
    </configuration>
    <!--NeedCopy-->
    
  6. 按照将 Citrix Analytics 数据导入到 StoreFront 部署中所述导入 Citrix Analytics 数据。

方法 2:在应用商店 web.config 文件中手动添加 <system.net> 部分

必须对 StoreFront 服务器上将用于将数据发送到 Citrix Analytics 的每个应用商店执行此操作。

  1. 备份应用商店的 web.config 文件,并将其复制到 C:\inetpub\wwwroot\Citrix< Store>\web.config 之外的其他位置。

  2. 使用 FQDNN 和端口组合或使用 IP 和端口组合通过代理设置修改以下 XML。

    例如,如果使用 FQDN 和端口组合,请使用以下 <system.net> 元素:

    <system.net>
        <defaultProxy>
        <proxy proxyaddress="HTTP://proxyserver.example.com:8888" bypassonlocal="true" />
        </defaultProxy>
    </system.net>
    <!--NeedCopy-->
    

    例如,如果使用 IP 和端口组合,请使用以下 <system.net> 元素:

    <system.net>
        <defaultProxy>
        <proxy proxyaddress="HTTP://10.0.0.1:8888" bypassonlocal="true" />
        </defaultProxy>
    </system.net>
    <!--NeedCopy-->
    
  3. 在应用商店 web.config 文件的末尾,插入适当的 <system.net> 元素,如下所示:

    <runtime>
    <gcServer enabled="true" />
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
        <assemblyIdentity name="System.Web.MVC" publicKeyToken="31BF3856AD364E35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
        </dependentAssembly>
        <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
        </dependentAssembly>
    </assemblyBinding>
    </runtime>
    
    Insert the <system.net> element here
    
    </configuration>
    <!--NeedCopy-->
    
  4. 按照将 Citrix Analytics 数据导入到 StoreFront 部署中所述导入 Citrix Analytics 数据。

升级 StoreFront

警告:

升级到 StoreFront 1912 时,部署中的所有桌面设备站点都会自动删除。如果需要保留桌面设备站点,请勿升级。作为替代方案,Citrix 建议对所有未加入域的用例使用 Citrix Workspace 应用程序 Desktop Lock

升级将保留您的 StoreFront 的配置,并将用户的应用程序订阅数据保留原样,以便用户不需要订阅其所有应用程序。相比之下,卸载 StoreFront 会删除 StoreFront 和相关联的服务、站点、应用程序订阅数据(在独立服务器上)和相关联的配置。

须知

  • 不支持在运行 StoreFront 的服务器上升级操作系统版本。Citrix 建议您在新安装的操作系统中安装 StoreFront。
  • 不支持从现在已结束使用的旧版当前版本升级到最新的 StoreFront 当前版本。有关详细信息,请参阅 CTX200356
  • StoreFront 不支持包含不同产品版本的多服务器部署,因此,授予对部署的访问权限之前,必须将服务器组中的所有服务器升级到相同的版本。
  • StoreFront 不支持包含不同服务器操作系统的多服务器部署,因此,某个服务器组中的所有服务器都必须位于相同的 Windows 服务器操作系统中。
  • 多服务器部署不支持同时升级,必须按顺序升级服务器。
  • 升级到此版本的 StoreFront 时,使用经典用户体验的所有应用商店都会更新为使用统一体验。我们建议您告知用户升级引入的新体验,如统一用户体验中所述。如果您自定义了统一体验,则在升级到此版本的 StoreFront 时会保留您的自定义设置。检查自定义外观是否仍适用于新的统一体验。
  • 在 StoreFront 升级运行之前,它会执行一些升级前检查。如果任何升级前检查失败,升级将不启动,并且会通知您失败。您的 StoreFront 安装保持不变。修复故障原因后,重新运行升级。
  • 如果 StoreFront 升级本身失败,则现有 StoreFront 安装可能会丢失其初始配置。将 StoreFront 安装还原到功能状态,然后重新运行升级。要将 StoreFront 还原到功能状态,请考虑以下方法:
  • 在 Citrix Virtual Apps and Desktops metainstaller 中发生的任何 StoreFront 升级失败都将在对话框中报告,其中包含指向相关故障日志的链接。

准备好升级

在开始升级之前,我们建议您执行以下步骤,以防止升级失败:

  • 升级前规划备份策略。
  • 如果您对 C:\inetpub\wwwroot\Citrix\<StoreName>\App_Data 中的文件(例如,default.ica 和 usernamepassword.tfrm)进行了修改,请为每个应用商店备份这些文件。升级后,您可以还原它们以恢复进行的修改。
  • 关闭 StoreFront 服务器上的所有其他应用程序。
  • 关闭 StoreFront 管理控制台。
  • 关闭所有命令行和 PowerShell 窗口。
  • 关闭所有与 StoreFront 相关的文件夹,例如 C:\inetpub\wwwroot\Citrix\Store 和 C:\inetpub\wwwroot\Citrix\StoreWeb。这样可以防止 Windows 资源管理器对其使用排他锁。
  • 在升级服务器之前,请重新启动服务器以确保 StoreFront 文件或文件夹上没有排他锁。(重新启动资源管理器进程 - 例如通过关闭 Windows 资源管理器的所有实例 - 不够的。
  • 立即运行升级,而无需启动服务器上的任何其他程序。
  • 使用管理员帐户升级服务器,在此过程中,请不要运行任何其他安装并且运行最少量的其他应用程序。

升级独立的 StoreFront 服务器

  1. 断开用户与 StoreFront 部署的连接,以在升级过程中阻止用户访问服务器。这样才能确保在升级期间,安装程序可以访问所有 StoreFront 文件。如果安装程序无法访问任何文件,则将无法替换这些文件,并且升级会失败,从而导致删除现有 StoreFront 配置。

  2. 通过创建 VM 快照备份服务器。
  3. 导出现有的 StoreFront 配置(推荐)。

  4. 运行此版本的 StoreFront 的安装文件。

升级 StoreFront 服务器组

升级 StoreFront 服务器组涉及使用其中一个服务器从组中删除其他服务器。删除的服务器会保留与该组相关的配置,从而防止其加入到新的服务器组。必须先将其重置为出厂默认状态,或者在其上重新安装 StoreFront,才能将其重新用于构建新服务器组,或者将其用作独立的 StoreFront 服务器。

升级服务器组之前:

  • 通过创建 VM 快照备份组中的所有服务器。这样,如果升级未按计划进行,您可以快速恢复到正在工作的三节点服务器组。
  • 导出现有的 StoreFront 配置(推荐)。仅从一台服务器导出服务器组配置。如果已在它们之间传播所有更改,服务器组中的所有服务器将保持相同的配置副本。此备份允许您轻松构建新的服务器组。

示例 1:在计划维护停机期间升级三节点 StoreFront 服务器组

这描述了在计划停机期间升级由三台服务器 A、B 和 C 组成的 StoreFront 服务器组。

  1. 通过禁用负载平衡 URL 来禁用用户对服务器组的访问。这将阻止用户在升级过程中连接到部署。
  2. 使用服务器 A 从组中删除服务器 B 和 C。

    服务器 B 和 C 现在从服务器组“孤立”。

  3. 通过运行此版本的 StoreFront 的安装文件来升级服务器 A。
  4. 确保服务器 A 已成功升级。
  5. 在服务器 B 和 C 上,卸载当前安装的 StoreFront 版本并安装新版本的 StoreFront。
  6. 将服务器 B 和 C 加入升级后的服务器 A,以创建升级后的服务器组。此服务器组由一个升级后的服务器 (A) 和两个新安装的服务器(B 和 C)组成。

    加入现有服务器组过程会自动将所有配置数据和订阅数据传播到新的服务器 B 和 C 中。

  7. 检查所有服务器是否正常运行。
  8. 通过启用负载平衡 URL 来启用用户对升级后的服务器组的访问。

示例 2:在非计划维护停机期间升级三节点 StoreFront 服务器组

这描述了在非计划停机期间升级由三台服务器 A、B 和 C 组成的 StoreFront 服务器组。

升级服务器组之前:

  1. 使用 Export-STFStoreSubscriptions 从服务器 A 中导出订阅数据。此备份是必需的,因为服务器在该过程的稍后阶段将进行出厂重置,这会删除订阅和配置数据。请参阅管理应用商店的订阅数据

  2. 通过禁用代表服务器 C 的负载平衡器服务来禁用用户对服务器 C 的访问。这会阻止用户在升级过程中连接到服务器 C。保持表示服务器 A 和 B 的负载平衡服务处于启用状态,以便用户能够继续使用。
  3. 使用服务器 A 从组中删除服务器 C。 服务器 A 和 B 继续提供对用户资源的访问权限。服务器 C 现在是从服务器组中孤立的,并且正在重置为出厂状态。
  4. 使用 Clear-STFDeployment 将孤立服务器 C 重置为出厂默认状态
  5. 使用 Import-STFConfiguration 导入 StoreFront 配置(以前导出的)到服务器 C 中。服务器 C 现在具有与旧服务器组相同的配置。以后没有必要重复此步骤。只有一台服务器需要配置数据的副本才能将其传播到加入该组的任何其他服务器。
  6. 通过运行此版本的 StoreFront 的安装文件来升级服务器 C。服务器 C 现在具有与旧服务器组相同的配置,并升级到新版本的 StoreFront。
  7. 导入订阅数据(以前导出的)到服务器 C 中。需稍后再次重复此步骤。只有一台服务器需要订阅数据的副本才能将其传播到加入该组的任何其他服务器。
  8. 使用服务器 B 重复步骤 2、3、4 和 6(请勿重复步骤 5)。在此期间,只有服务器 A 为用户提供资源访问权限。因此,建议在安静的工作期间执行此步骤,此时 StoreFront 服务器组上的负载应该是最低的。
  9. 使用加入现有服务器组流程将服务器 B 加入到服务器 C 中。这将为当前版本的 StoreFront(服务器 A)提供单个服务器部署,并在新 StoreFront 版本(服务器 B 和 C)上提供新的双节点服务器组。
  10. 同时为服务器 B 和 C 启用负载平衡服务,以便其能够从服务器 A 接管。
  11. 禁用服务器 A 的负载平衡服务,以便将用户定向到新升级的服务器 B 和 C。
  12. 使用服务器 A 重复执行步骤 2、3、4 和 6(请勿重复执行步骤 5)。服务器组升级过程现已完成。服务器 A、B 和 C 具有来自原始组的相同配置和订阅数据。

注意:

在服务器 A 是唯一可访问的服务器时的短暂过程中,订阅可能会丢失(步骤 9)。这可能会导致新服务器组在升级后具有略微过时的订阅数据库副本,并且任何新的订阅记录都将丢失。

这不会对功能产生影响,因为订阅数据对于用户登录和启动资源来说不是必不可少的。但是,在服务器 A 恢复出厂状态并加入新升级的组后,用户需要再次订阅资源。虽然不大可能丢失超过几条订阅记录,但这可能是升级实时 StoreFront 生产环境而不会停机造成的后果。

配置 StoreFront

Citrix StoreFront 管理控制台首次启动时,会提供两个选项。

  • 创建部署。在新 StoreFront 部署中配置第一台服务器。单服务器部署适用于评估 StoreFront 或小型生产部署。配置第一台 StoreFront 服务器后,可以随时向组中添加更多服务器,以提高部署的容量。
  • 加入现有服务器组。将其他服务器添加到现有 StoreFront 部署中。选择此选项可快速提高 StoreFront 部署的容量。多服务器部署需要实现外部负载平衡。要添加服务器,需要访问部署中的现有服务器。Citrix 建议您向服务器组中添加的服务器不要超过 6 个。

卸载 StoreFront

除产品本身外,卸载 StoreFront 将删除身份验证服务、应用商店、Citrix Receiver for Web 站点、XenApp Services URL 以及关联的配置。此外,还将删除包含用户的应用程序订阅数据的订阅应用商店服务。在单服务器部署中,用户应用程序订阅的详细信息因此将丢失。但是,在多服务器部署中,这些数据将保留在组中的其他服务器上。卸载 StoreFront 时,不会从服务器中删除 StoreFront 安装程序要求的必备项,例如,.NET Framework 功能和 Web 服务器 (IIS) 角色服务。

  1. 使用具有本地管理员权限的帐户登录 StoreFront 服务器。
  2. 如果打开了 StoreFront 管理控制台,请关闭。
  3. 关闭任何可能已通过其 PowerShell SDK 管理 StoreFront 的 PowerShell 会话。
  4. 在 Windows 开始屏幕或“应用程序”屏幕中,找到并单击 Citrix StoreFront 磁贴。在该磁贴上单击鼠标右键,然后单击卸载
  5. 程序和功能对话框中,选择 Citrix StoreFront,然后单击卸载,以删除服务器中的所有 StoreFront 组件。
  6. 卸载 Citrix StoreFront 对话框中,单击。卸载完成后,单击确定
安装、设置、升级和卸载