基本故障排除

本主题列出了您在设置 Secure Private Access 时或之后可能遇到的一些错误。

证书错误

数据库创建错误

StoreFront 故障

公共网关/回调网关故障

无法访问 Secure Private Access 服务器

证书错误

错误消息:无法自动从一个或多个网关服务器获取证书。

当您尝试添加公有 NetScaler Gateway 地址但获取证书时出现问题时,会出现此错误消息。在设置 Secure Private Access 或在安装完成后更新设置时,可能会出现此问题。

解决方法:更新网关证书的方式与 Citrix Virtual Apps and Desktops 的更新方式相同。

数据库创建错误

  • 错误消息:无法创建数据库

    解决方案:对于自动用例-计算机必须具有读取、写入、更新权限才能在 SQL Server 上的数据库中创建表。

  • 错误消息:无法创建数据库:数据库已经存在。

    此错误消息可能出现在以下任何场景中。

    • 如果在配置数据库时选择了自动配置选项。
    • 如果管理员正在创建数据库,则它必须是一个空数据库。如果数据库是非空数据库,则可能会出现此错误消息。

      解决方案:必须创建一个空数据库。

    • 您卸载了 Secure Private Access,然后使用相同的站点名称重试设置。在这种情况下,先前安装的数据库不会被删除。

      解决方案:必须手动删除数据库。

    • 您选择使用脚本手动设置数据库(通过在“配置数据库”页面中选择“手动配置”),然后更改为“自动配置”选项,但使用相同的站点名称。在这种情况下,运行脚本时已经创建了同名数据库。

      解决方案:您必须重命名该站点,然后再次运行脚本。

    • 计算机没有读取、写入、更新权限,无法在 SQL Server 的数据库中创建表。

      解决方案: 在计算机上启用相应的权限。有关详细信息,请参阅 设置数据库所需的权限

  • 错误消息:无法创建数据库:连接失败

    解决方案

    • 检查计算机上的数据库网络连接。确保防火墙上的 SQL Server 端口处于打开状态。
    • 如果使用远程 SQL Server,请检查 SQL Server 是否使用 Secure Private Access 计算机标识 Domain\hostname$ 创建了登录名。
    • 如果使用远程 SQL Server,请确认为计算机身份分配了正确的角色,即系统管理员角色。
    • 如果使用本地 SQL Server(不是安装程序),请检查 NT AUTHORITY\SYSTEM 用户是否必须创建登录名。

StoreFront 故障

  • 错误消息:无法为以下内容创建 StoreFront 条目: <Store URL>

    如果 StoreFront 条目不可见,请从“设置”标签中更新该条目。使用向导设置 Secure Private Access 后,可以从“设置”选项卡编辑 StoreFront 条目。记下发生此错误的 StoreFront 应用商店 URL。

    解决方案

    1. 单击“设置”,然后单击“集成”选项卡。
    2. 如果 StoreFront 条目不可见,请在 StoreFront 应用商店 URL 中添加该条目。
  • 错误消息:无法为以下内容配置 StoreFront 条目: <Store URL>

    解决方案

    1. 可能有 PowerShell 的执行策略限制。运行 PowerShell 脚本命令 Get-ExecutionPolicy 以了解详细信息。

    2. 如果受到限制,则必须绕过此设置并手动运行 StoreFront 配置脚本。
    3. 单击“设置”,然后单击“集成”选项卡。
    4. StoreFront 应用商店 URL 中,识别出现错误的 StoreFront URL 条目。
    5. 单击此应用商店 URL 旁边的下载脚本按钮,并在安装了相应的 StoreFront 的计算机上以管理员权限运行此 PowerShell 脚本。此脚本必须在所有 StoreFront 计算机上运行。

    注意:

    如果您在卸载后重试安装,请确保在 StoreFront 配置中没有名为“Secure Private Access”的条目(StoreFront > 应用商店 > Delivery Controller -> Secure Private Access)。如果存在 Secure Private Access,请删除此条目。从“设置”>“集成”页面手动下载并运行脚本。

  • 错误消息:StoreFront 的配置不是本地配置: <Store URL>

    使用向导设置 Secure Private Access 后,可以从“设置”选项卡编辑网关条目。记下发生此错误的 StoreFront 应用商店 URL。

    解决方案

    如果 StoreFront 与 Secure Private Access 未安装在同一台计算机上,则会出现此问题。您必须在安装了 StoreFront 的计算机上手动运行 StoreFront 配置。

    1. 单击“设置”,然后单击“集成”选项卡。
    2. StoreFront 应用商店 URL 中,识别出现错误的 StoreFront URL 条目。
    3. 单击此应用商店 URL 旁边的下载脚本按钮,并在安装了相应的 StoreFront 的计算机上以管理员权限运行此 PowerShell 脚本。此脚本必须在所有 StoreFront 计算机上运行。

    注意:

    要运行 StoreFront PowerShell 脚本,请使用管理员权限打开兼容 Windows x64 的 PowerShell 窗口,然后运行 ConfigureStorefront.ps1。StoreFront 脚本与 Windows PowerShell (x86) 不兼容。

  • 错误消息:”Get-STFStoreService : Exception of type ‘Citrix.DeliveryServices.Framework.Feature.Exceptions.RegistryKeyNotFoundException’ was thrown.”(在使用 PowerShell 运行 StoreFront 脚本时)。

    当在兼容 x86 的 PowerShell 窗口上运行 StoreFront 脚本时,就会出现此错误。

    解决方案:

    要运行 StoreFront PowerShell 脚本,请使用管理员权限打开兼容 Windows x64 的 PowerShell 窗口,然后运行 ConfigureStorefront.ps1

公共网关/回调网关故障

错误消息:无法为以下项创建网关条目: <Gateway URL> 或无法为以下项创建回调网关条目: <Callback Gateway URL>

解决方案

记下发生故障的公共网关或回调网关 URL。使用向导设置 Secure Private Access 后,可以从“设置”选项卡编辑网关条目。

  1. 单击“设置”,然后单击“集成”选项卡。
  2. 更新公共网关地址或回调网关地址以及发生故障的虚拟 IP 地址。

无法访问 Secure Private Access 服务器

错误消息:更新 IIS 池失败。无法重新启动 IIS 池

解决方案

转到 Internet Information Services (IIS) 中的应用程序池,检查以下应用程序池是否已启动并正在运行:

  • Secure Private Access 运行时池
  • Secure Private Access 管理池

还要检查默认 IIS 站点 "Default Web Site" 是否已启动并正在运行。

数据库连接检查失败

错误消息: 连接检查失败

数据库连接检查可能由于多种原因而失败:

  • 由于防火墙,无法从 Secure Private Access 插件主机访问数据库服务器。

    解决方案: 检查防火墙上是否打开了数据库端口(默认端口 1433)。

  • Secure Private Access 插件主机没有权限连接到数据库。

    解决方案: 请参阅 Secure Private Access 的 SQL 数据库权限

网关连接检查失败。无法获取公共证书

错误消息: 安装后配置失败,并显示错误“网关连接检查失败。无法获取公共证书…”

解决方案:

  • 使用配置工具手动将网关公共证书上载到 Secure Private Access 数据库。
  • 使用管理员权限打开 PowerShell 或命令提示符窗口。
  • 将目录更改为 Secure Private Access 安装文件夹下的 Admin\AdminConfigTool 文件夹(例如,cd “C:\Program Files\Citrix\Citrix Access Security\Admin\AdminConfigTool”)
  • 运行以下命令:

    .\AdminConfigTool.exe /UPLOAD_PUBLIC_GATEWAY_CERTIFICATE <PublicGatewayUrl> <PublicGatewayCertificatePath>

应用程序枚举失败

如果 StoreFront URL 或 NetScaler Gateway URL 包含尾部斜杠 (/),则应用程序枚举中断。

解决方案:

删除 StoreFront 应用商店 URL 或 NetScaler Gateway URL 中的尾部斜杠。有关详情,请参阅设置后更新 StoreFront 或 NetScaler Gateway 服务器详细信息

其他

无法完成首次设置

如果 Director 配置在首次设置期间失败,则可能无法重新配置许可服务器。

解决方案:

手动清理 license_server 表。

创建 Secure Private Access 诊断支持包

执行以下步骤以创建 Secure Private Access 诊断支持包:

  • 使用管理员权限打开 PowerShell 或命令提示符窗口。
  • 将目录更改为 Secure Private Access 安装文件夹下的 Admin\AdminConfigTool 文件夹(例如,cd “C:\Program Files\Citrix\Citrix Access Security\Admin\AdminConfigTool”)。
  • 运行以下命令:

    .\AdminConfigTool.exe /SUPPORTBUNDLE <output folder>

Secure Private Access 的 SQL 数据库权限

要自动创建数据库,Secure Private Access 插件主机必须具有连接到数据库和创建数据库架构的权限。

远程数据库:

执行以下步骤来设置远程数据库的权限。

  1. 使用名称语法 CitrixAccessSecurity<Site Name> 创建空数据库。其中, <Site Name> 是 Secure Private Access 的站点名称。(例如,CitrixAccessSecuritySPA)。

    CREATE DATABASE CitrixAccessSecurity<SiteName>

  2. 为 Secure Private Access 虚拟机的计算机身份创建 SQL Server 登录名。例如,如果您的 Secure Private Access 代理计算机名为 HOST1,计算机域为 DOMAIN1,则计算机标识为“DOMAIN1\HOST1$”。如果登录名已经创建,则可以忽略此步骤。

    USE CitrixAccessSecurity<SiteName>

    CREATE LOGIN [DOMAIN1\HOST1$] FROM WINDOWS

    可以使用以下查询找到域名:

    SELECT DEFAULT_DOMAIN()[DomainName]

  3. 将 db_owner 角色分配给计算机身份。

    USE CitrixAccessSecurity<SiteName>

    EXEC sys.sp_addrolemember [db_owner], 'DOMAIN1\HOST1$'

    ALTER USER [DOMAIN1\HOST1$] WITH DEFAULT_SCHEMA = dbo;

本地数据库:

执行以下步骤来设置本地数据库的权限。

  1. 使用名称语法 CitrixAccessSecurity<Site Name> 创建空数据库。其中, <Site Name> 为 Secure Private Access 的站点名称。(例如,CitrixAccessSecuritySPA)。

    CREATE DATABASE CitrixAccessSecurity<SiteName>

  2. NT AUTHORITY\SYSTEM 用户创建 SQL Server 登录名。如果登录名已经创建,则可以忽略此步骤。

    USE CitrixAccessSecurity<SiteName>

    CREATE LOGIN [NT AUTHORITY\SYSTEM] FROM WINDOWS

  3. 将 db_owner 角色分配给“NT AUTHORITY\SYSTEM”用户。

    USE CitrixAccessSecurity<SiteName>

    EXEC sys.sp_addrolemember [db_owner], 'NT AUTHORITY\SYSTEM'

    ALTER USER [NT AUTHORITY\SYSTEM] WITH DEFAULT_SCHEMA = dbo;

当您手动创建数据库时,下载的数据库脚本会将权限添加到计算机标识中。

更改故障排除日志的日志级别

故障排除日志是默认的错误日志级别。

要更改故障排除日志的日志级别,请在 runtime service appsettings.json (C:\Program Files\Citrix\Citrix Access Security\Runtime\RuntimeService) 中,将 TroubleshootingSqlrestrictedToMinimumLevel 更新为以下值之一:

-  Information
-  Debug
-  Warning
-  Error

"TroubleshootingSql": {
  "restrictedToMinimumLevel": "Error",
  "batchPostingLimit": 50,
  "batchPeriod": "00:00:05" // 5 seconds
}