对一些常见错误进行故障排除
本主题列出了您在设置 Secure Private Access 时可能遇到的一些错误。
无法访问 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。
解决方案:
- 单击“设置”,然后单击“集成”选项卡。
- 如果 StoreFront 条目不可见,请在 StoreFront 应用商店 URL 中添加该条目。
-
错误消息:无法为以下内容配置 StoreFront 条目:
<Store URL>
解决方案:
-
可能有 PowerShell 的执行策略限制。运行 PowerShell 脚本命令
Get-ExecutionPolicy
以了解详细信息。 - 如果受到限制,则必须绕过此设置并手动运行 StoreFront 配置脚本。
- 单击“设置”,然后单击“集成”选项卡。
- 在 StoreFront 应用商店 URL 中,识别出现错误的 StoreFront URL 条目。
- 单击此应用商店 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 配置。
- 单击“设置”,然后单击“集成”选项卡。
- 在 StoreFront 应用商店 URL 中,识别出现错误的 StoreFront URL 条目。
- 单击此应用商店 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 后,可以从“设置”选项卡编辑网关条目。
- 单击“设置”,然后单击“集成”选项卡。
- 更新公共网关地址或回调网关地址以及发生故障的虚拟 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 服务器详细信息。
其他
创建 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 插件主机必须具有连接到数据库和创建数据库架构的权限。
远程数据库:
执行以下步骤来设置远程数据库的权限。
-
使用名称语法
CitrixAccessSecurity<Site Name>
创建空数据库。其中,<Site Name>
是 Secure Private Access 的站点名称。(例如,CitrixAccessSecuritySPA)。CREATE DATABASE CitrixAccessSecurity<SiteName>
-
为 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]
-
将 db_owner 角色分配给计算机身份。
USE CitrixAccessSecurity<SiteName>
EXEC sys.sp_addrolemember [db_owner], 'DOMAIN1\HOST1$'
ALTER USER [DOMAIN1\HOST1$] WITH DEFAULT_SCHEMA = dbo;
本地数据库:
执行以下步骤来设置本地数据库的权限。
-
使用名称语法
CitrixAccessSecurity<Site Name>
创建空数据库。其中,<Site Name>
为 Secure Private Access 的站点名称。(例如,CitrixAccessSecuritySPA)。CREATE DATABASE CitrixAccessSecurity<SiteName>
-
为
NT AUTHORITY\SYSTEM
用户创建 SQL Server 登录名。如果登录名已经创建,则可以忽略此步骤。USE CitrixAccessSecurity<SiteName>
CREATE LOGIN [NT AUTHORITY\SYSTEM] FROM WINDOWS
-
将 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;
当您手动创建数据库时,下载的数据库脚本会将权限添加到计算机标识中。