如何排查应用程序无法从 App-V 管理服务器流式传输的问题

本文介绍如何排查无法从管理服务器流式传输的 Microsoft Application Virtualization (App-V)中的虚拟化应用程序的问题。

适用于: Windows 7 Service Pack 1、Windows Server 2012 R2
原始 KB 数: 2615139

现象

当应用程序无法在 App-V 客户端上流式传输时,应用程序将无法启动,并出现以下错误:

Application Virtualization Client 无法启动 应用程序名称

错误消息还将包括错误说明和代码示例,如以下示例所示:

无法建立连接,因为目标计算机主动拒绝连接。
错误代码:xxxxxxx-xxxxxx2A-0000274D

无法在系统数据存储中找到请求的包,或者无法在服务器上找到与此包关联的文件。 向系统管理员报告以下错误代码。
错误代码:xxxxxxx-xxxxxx0A-20000194

无法识别这种主机。
错误代码:xxxxxxx-xxxxxx2A-00002AF9

无法访问指定的 Application Virtualization Server。
请过几分钟重试。 如果问题仍然存在,请向系统管理员报告以下错误代码。
错误代码:xxxxxxx-xxxxxx0A-10000002

在Sftlog.txt文件中,将记录以下错误:

[2011/08/24 15:32:56:618 JGSW ERR]{hap=5:app=Appname:tid=16C:usr=Administrator}Application Virtualization Client 无法连接到流 URL“rtsp://appv-svr:554/Application/Application.sft”(rc 19D07F2A-0000274D、原始 rc 19D07F2A-0000274D)。

注意

Sftlog.txt中的错误代码将有所不同。

排查应用程序流问题的第一步是确定问题是否与单个应用程序或所有应用程序隔离。

确定受影响的应用程序的范围后,请执行以下步骤,这些步骤适用于你的方案。

对无法流式传输的单个应用程序进行故障排除

  1. 查看 App-V 客户端上的Sftlog.txt文件。

    在 App-V 客户端上,查看 App-V 客户端上的Sftlog.txt文件。 此日志文件可能包含错误消息中未包含的其他信息。

    Sftlog.txt的默认位置为: %systemdrive%\ProgramData\Microsoft\Application Virtualization Client。

  2. 查看 App-V 管理服务器上的应用程序 .osd 文件。

    1. 在 App-V 管理服务器上,打开应用程序 .osd 文件并向下滚动到以下行:

      <CODEBASE HREF=“rtsp://servername:554/ApplicationDirectory/Application.sft”>

    2. 验证 SFT 文件的协议、服务器名称、端口和路径是否正确。

      每种协议类型的默认端口:

      • RTSP=554
      • RTSPS=322
      • HTTP=80
      • HTTPS=443
    3. 如果对应用程序 .osd 文件进行了更改,请保存更改,然后在 App-V 客户端上打开 Application Virtualization Client MMC 管理单元并刷新发布服务器。

    4. 在 App-V 客户端上启动应用程序,查看错误是否继续发生。

    注意

    如果应用程序 OSD 文件使用服务器名称的 %SFT_SOFTGRIDSERVER% 环境变量,请验证是否已在 App-V 客户端上配置环境变量。

  3. 从 App-V 客户端上的缓存中删除应用程序。

    1. 在 App-V 客户端上,打开位于“管理工具”下的 Application Virtualization Client 管理单元。
    2. 单击“应用程序”。
    3. 右键单击无法流式传输的应用程序,然后单击“ 删除”。
    4. 收到确认对话框时单击“ ”。
    5. 删除应用程序后,刷新发布服务器以重新发布应用程序。

    若要刷新发布服务器,请执行以下步骤之一:

    • 方法 1
      1. 打开 Application Virtualization Client 管理单元。
      2. 单击“ 发布服务器”。
      3. 右键单击发布服务器,然后选择“ 刷新服务器”。
    • 方法 2
      1. 右键单击通知区域中的 App-V 图标,然后选择“ 刷新应用程序”。
      2. 在 App-V 客户端上启动应用程序,查看错误是否继续发生。

排查所有应用程序无法流式传输的问题

  1. 查看 App-V 客户端上的Sftlog.txt文件。

    在 App-V 客户端上,查看 App-V 客户端上的Sftlog.txt文件。 此日志文件可能包含错误消息中未包含的其他信息。

    Sftlog.txt的默认位置为 %systemdrive%\ProgramData\Microsoft\Application Virtualization Client。

  2. 验证 App-V 客户端是否可以访问内容目录。

    在 App-V 客户端上,单击“开始”,在“搜索”或“运行”行中,键入内容共享的 UNC 路径(例如:\\appv-svr\content),然后按 Enter。

    如果客户端无法连接到内容共享,请通过执行以下步骤来验证 UNC 路径是否正确,并验证对内容目录的 NTFS 和共享权限是否正确。

    在托管内容目录的服务器上,验证是否在内容目录上配置了以下 NTFS 和共享权限:

    • App-V 用户 = 读取
    • App-V 管理员 = 读取和写入
    • 网络服务 = 读取和写入

    内容目录的默认位置为:%systemdrive%\Program Files (x86)\Microsoft System Center App Virt Management Server\App Virt Management Server\content。

  3. 验证 App-V 管理服务器上的内容目录的路径。 若要验证这一点,请在 App-V 管理服务器上执行以下步骤:

    1. 在管理工具中,打开 Application Virtualization Management Console。
    2. 右键单击服务器名称,然后单击“ 系统选项”。
    3. 验证默认内容路径是否指向内容目录位置。

      注意

      内容位置应由 UNC 路径引用(例如:\\appv-svr\content)。

    4. 单击“确定关闭“系统选项”窗口。
    5. 关闭 Application Virtualization Management Console。
    6. 打开 Regedit。
    7. 导航到以下键:
      • 32 位系统:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SoftGrid\4.5\Server
      • 64 位系统:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\SoftGrid\4.5\Server
    8. 验证SOFTGRID_CONTENT_DIR注册表值是否指向内容目录位置。

      注意

      如果内容共享是 DFS 共享(例如:\\appv-svr\content),则内容位置应由 UNC 路径引用。

    9. 如果修改了SOFTGRID_CONTENT_DIR注册表值,请重启 Application Virtualization Management Server 服务或重启服务器。
  4. 验证 Application Virtualization Management Server 服务是否已在 App-V 管理服务器上启动。 若要验证这一点,请在 App-V 管理服务器上执行以下步骤:

    1. 在管理工具中,打开“服务 MMC”管理单元。
    2. 找到 Application Virtualization Management Server 服务。
    3. 验证服务是否已启动。
    4. 如果未启动该服务,请右键单击 Application Virtualization Management Server,然后单击“ 启动”。
    5. 如果服务无法启动,请在Microsoft知识库中搜索所报告的错误消息。
  5. 验证 App-V 客户端是否可以将 telnet 连接到 App-V 管理服务器和端口。 若要验证这一点,请在 App-V 客户端上执行以下步骤:

    1. 在命令提示符处,键入 telnet ServerName Port,然后按 Enter。

      例如,键入 telnet appv-svr 554 命令,然后按 Enter。

    2. 如果连接成功,窗口为空。 按 Enter 两次,将收到以下消息:

      RTSP/1.0 400 错误请求
      服务器:Microsoft Application Virtualization Server/x.x.x.xxxxx [Win32;Windows NT x.x]
      日期:xxx、xx xxx xxxx xx:xx:xx xxx

      如果连接失败,将收到以下消息:

      无法在端口 554 上打开与主机的连接:连接失败

      如果 Application Virtualization Management Server 服务已启动,但客户端无法连接到服务器,请验证客户端与服务器之间的端口流量不受防火墙或其他软件的限制。 有关详细信息,请联系网络管理员。

  6. 查看 App-V 管理服务器上的应用程序 .osd 文件。

    1. 在 App-V 管理服务器上,打开应用程序 .osd 文件并向下滚动到以下行:

      <CODEBASE HREF=“rtsp://servername:554/ApplicationDirectory/Application.sft”>

    2. 验证 SFT 文件的协议、服务器名称、端口和路径是否正确。

      每种协议类型的默认端口:

      • RTSP= 554
      • RTSPS=322
      • HTTP=80
      • HTTPS=443
    3. 如果对应用程序 .osd 文件进行了更改,请保存更改,然后在 App-V 客户端上打开 Application Virtualization Client MMC 管理单元并刷新发布服务器。

    4. 对无法流式传输的所有应用程序重复步骤 1-3。

    注意

    如果应用程序 OSD 文件使用服务器名称的 %SFT_SOFTGRIDSERVER% 环境变量,请验证是否已在 App-V 客户端上配置环境变量。

  7. 清除 App-V 客户端上的缓存。

    如果步骤 2-6 已确认 App-V 客户端可以与 App-V 管理服务器通信并正确配置设置,则应用程序可能由于 App-V 客户端上的缓存文件损坏而无法流式传输。

    注意

    清除 App-V 客户端上的缓存会从缓存文件中删除所有应用程序数据。 这可能会导致应用程序加载时间在清除缓存后首次启动应用程序时增加。

    若要清除 App-V 客户端上的缓存,请执行以下步骤:

    1. 打开 Regedit。
    2. 导航到以下键:
      • 32 位系统:HKEY_LOCAL_MACHINE\Software\Microsoft\Softgrid\4.5\Client\AppFS
      • 64 位系统:HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\SoftGrid\4.5\Client\AppFS
    3. 双击值名称 State 并将值数据更改为 0。
    4. 重启 App-V 客户端计算机。

其他资源

有关 Hyper-V 的详细信息,请参阅 Hyper-V

应用程序无法流式传输时常见的错误代码:

  • 44-00001004
  • 0a-00000193
  • 0a-10000001
  • 0a-0000e02b
  • 0a-200001f4
  • 64-00000003
  • 2A-80090322
  • 08-10000003
  • 0a-0000E005
  • 0A-0000E0A3
  • 0A-40000191
  • 2A-0000274D
  • 0A-20000194
  • 2A-00002AF9
  • 0A-10000002