故障排除—应用程序服务器

应用程序服务器配置

无法启动 Windows 服务

如果 Windows 服务无法启动或启动后立即停止,则表示服务器配置存在问题。

在服务器服务启动时会进行一些检查,包括但不限于以下检查:

  • 已安装对 SQL 数据库的适当访问权限以及预期的数据库更新。
  • 加密方案密钥保存在服务器上,对应于数据库中可指示密钥保存位置的记录。
  • 服务器连接模式支持 Blue Prism 身份验证模式。
  • 用户拥有在设备上启动侦听程序的适当权限。
  • 已安装有效许可证。

为了确定导致问题的原因,应执行以下步骤:

  • 在 BPServer.exe 实用程序中检查配置文件以查看警告消息—这将突出显示以下问题,例如,是否未针对此配置文件配置服务器服务、是否需要加密证书但无法找到,或者是否服务登录用户没有适当的权限来启动侦听程序。
  • 在事件查看器中查看消息—这将突出显示以下问题,例如,是否无法找到服务器服务配置文件、是否服务器无法通过数据库进行身份验证、是否需要加密证书但证书存在问题、是否在服务配置文件中找不到预期的加密方案,或者是否服务登录帐户没有适当权限来启动侦听程序。

  • 尝试使用 BPServer.exe 实用程序启动服务—以这种方式使用此实用程序仅适用于故障排除,因为此实用程序会尝试在当前登录用户的上下文中启动服务。如果本地登录用户对服务登录帐户拥有不同的权限,则此处显示的行为可能会与从服务管理控制台启动服务时有所不同。例如,如果将服务配置为使用 Windows 身份验证连接到 SQL,则需要当前登录的用户对目标 SQL Server 上的 Blue Prism 数据库拥有相应的最低权限。

无法检测到有效许可证

无法启动服务。System.NotSupportedException:无法检测到有效许可证。

必须为环境配置有效许可证才能启动 Blue Prism 服务器。

可以通过 Blue Prism 用户界面安装新的许可证密钥。可能需要使用具有直接数据库连接的客户端来执行此操作。

无法解析加密密钥

无法启动服务。BluePrism.BPCoreLib.InvalidStateException:无法解析以下加密密钥:2018 Q2 加密方案,默认加密方案

此错误表示该服务器上应存在加密方案密钥,但未找到。上述错误表示未找到应在 Blue Prism 服务器本地定义的两个方案:“2018 Q2 加密方案”和“默认加密方案”。

必须检查在数据库中配置的加密方案记录,并确保对于每个具有服务器密钥位置的记录,在 Blue Prism 服务器上都创建了适当的加密方案记录。一个关于将客户端中设置与 Blue Prism 服务器配置实用程序中设置进行比较的示例。

正在运行服务的帐户无权创建服务

以下错误表明正在运行服务的帐户没有适当权限来将服务配置为侦听所配置的设置:

BluePrism.BPCoreLib.InvalidStateException:尝试启动服务器时发生错误。正在运行该服务的帐户 (AD\bpserverservice001) 无权创建用于侦听服务器命名空间的服务。

当以非本地管理员的用户身份启动 Blue Prism 服务器,或未正确配置访问控制列表 (ACL) 时,此消息很常见。

要解决此问题,请执行以下任一操作:

  • 使用 Blue Prism 服务器配置实用程序为启动该服务的已配置用户设置权限;或者
  • 执行事件查看器消息中提供的命令。

请务必确保专门为将启动服务的用户创建 ACL 权限,并且使用通用 URL(如果未指定服务器绑定)或直接与指定服务器绑定的 URL 来配置该权限。

检查服务时出错

如果在编辑 Blue Prism 服务器配置文件时出现此错误,则表示在验证当前登录用户是否为本地管理员时发生错误。

如果使用本地用户帐户访问属于 Active Directory 域成员的设备,并且无法联系域控制器,就会发生这种情况。必须确保可以联系域控制器。

无法找到加密证书

如果无法访问或恢复用于加密的证书,则系统会显示以下消息:无法找到用于加密服务器配置的证书。请将具有正确指纹的证书添加到证书存储库中

在这种情况下,配置 Blue Prism 服务器的用户将需要重新创建服务器配置的配置文件。要这样做,请删除 ProgramData\Blue Prism Limited\Automate V3 中的 Automate.config 文件。在启动 BPServer.exe 时,系统会自动创建新的 Automate.config 文件。之后,可以将加密方案和新证书应用到新的服务器配置文件。

Kerberos 身份验证的服务主体名称 (SPN) 配置

验证 DNS 查找是否正常工作

  1. 在 Blue Prism 交互式客户端的“连接配置”屏幕上检查已配置的 Blue Prism 服务器的主机名。
  2. 从 Blue Prism 交互式客户端执行前向 DNS 查找:nslookup <BP Server hostname>

    这将返回 FQDN,以便在 SPN 注册中使用。

如果 DNS 查找无法正常工作,请联系您的内部 IT 团队以进一步进行排除故障。

验证 SPN 是否已正确注册

  1. 以管理员身份打开“命令提示符”,并运行命令 setspn -L ACCOUNT_NAME

    这将列出为您在 SPN 注册期间指定的帐户注册的 SPN。

  2. 确认返回的 SPN 与注册的 SPN 相同,格式应为:<service class>/<host>:<port>/<service name>

    其中:

    • service class 为 HTTP。这不应更改为 HTTPS。
    • host 是 Blue Prism 应用程序服务器的 FQDN,例如 appserver.bpdomain.local
    • port 是 Blue Prism 应用程序服务器正在运行的端口。默认 = 8199
    • service name 是 BP 服务器

SPN 必须完全按照 SPN 配置中的说明进行配置,才能正常工作。SPN 在 Active Directory 林中应是唯一的,但在某些情况下可能存在重复。要检查重复条目,您可以使用 setspn -F -Q */BPserver。这将列出林中包含“BPserver”的所有 SPN 条目。如果有多个条目,可以运行命令 setspn -D SPN_NAME ACCOUNT_NAME 来删除。

验证 Kerberos 服务工单

如果 SPN 已注册到正确的帐户,则应可以使用非提升命令行中的 klist 来检查是否可以获得 Kerberos 服务工单。

这可以通过以下方式完成:

  • 使用 klist purge 清除 Kerberos 工单。
  • 运行 klist get SPN_NAME,例如,在客户端计算机上运行 klist get HTTP/appserver.bpdomain.local:8199/BPServer 以获取以下输出。

Kerberos 服务工单示例:

复制
Client: testuser @ BPDOMAIN.LOCAL
                    Server: HTTP/appserver.bpdomain.local:8199/BPServer @ BPDOMAIN.LOCAL
                    KerbTicket Encryption Type: RSADSI RC4-HMAC(NT)
                    Ticket Flags 0x40a10000 -> forwardable renewable pre_authent ok_as_delegate
                    name_canonicalize
                    Start Time: 1/11/2022 12:00:00 (local)
                    End Time:  1/12/2022 22:00:00 (local)
                    Renew Time: 1/18/2022 12:00:00 (local)
                    Session Key Type: RSADSI RC4-HMAC(NT)
                    Cache Flags: 0x200 -> DISABLE-TGT-DELEGATION
                Kdc Called: dc1.bpdomain.local

可以通过选中上述示例中的“Server:”部分来标识 Kerberos 服务工单。如果未返回已注册 SPN 的 Kerberos 服务工单,请检查是否已正确遵循上述步骤。

如果您已遵循上述步骤,但仍然无法返回已注册 SPN 的 Kerberos 工单,则需要联系内部 IT 团队进行进一步调查,因为 Windows Kerberos 身份验证未按预期运行。

如果您可以成功返回已注册 SPN 的 Kerberos 服务工单,但问题仍未解决,请参阅以下部分

RC4 加密

在上述示例中,Kerberos 服务工单具有基本加密类型 RC4,该类型被认为是易受攻击的密码,不建议使用。

在某些环境中,可能会生成 RC4 工单,但可能已启用阻止客户端接收和使用此类 Kerberos 工单的规则。

如果您看到 RC4 工单正如上例所示生成,请联系您的内部 IT 团队,以确保服务帐户的 Kerberos 身份验证机制能够使用 RC4,或启用了 AES 加密。可以通过选中上述示例中的“KerbTicket 加密类型”部分来识别 Kerberos 身份验证类型。

应用程序服务器连接

多种因素可导致在将 Blue Prism 设备连接到应用程序服务器时出现错误,强烈建议验证以下项:

  • Blue Prism 服务器服务已启动
  • 用于服务器服务的地址可解析(即通过 DNS),并且网络连接没有被阻止。(例如,验证是否已正确配置防火墙)。
  • 为连接设备配置了正确设置:
    • 服务器连接模式和端口与在服务器上定义的相应对象匹配。
    • 如果为服务器配置了地址绑定,则设备使用该地址进行连接。
  • 如果将服务器配置为使用传输加密,则连接设备必须信任颁发服务器证书的证书颁发机构。

连接到数据库

有关连接的常规建议,请查看数据库连接故障排除部分。

进行故障排除时,应考虑到用于在 SQL 中进行身份验证的帐户将取决于已针对服务器所用连接进行配置的 SQL 身份验证模式:

  • SQL 身份验证—将使用连接时指定的凭据。
  • Windows 身份验证—将使用服务器服务的上下文。如果从 Windows 服务控制台启动服务,将是服务登录帐户;如果直接从 BPServer.exe 启动服务,则将是当前已登录用户。

数据库不存在

无法启动服务。BluePrism.BPCoreLib.InvalidStateException:连接无效:服务器不可用

“BP_Prod_Native”数据库不存在

此错误表示找不到该数据库。

确认数据库服务器和数据库名称是否正确。如果尚未创建 Blue Prism 数据库,则具有相应 SQL 权限的用户可以通过使用产品内的“创建数据库”操作来创建数据库,或通过使用 CreateScript.sql 来手动创建。

权限不正确

无法启动服务。BluePrism.BPCoreLib.InvalidStateException:连接无效:服务器不可用

无法打开登录所请求的数据库“BP_Prod_Native”。登录失败。

此错误表示用于对数据库进行身份验证的用户无权访问该数据库。

至少需要为用户授予对目标数据库的满足或超过最低权限的 SQL 权限。

凭据不正确

无法启动服务。BluePrism.BPCoreLib.InvalidStateException:连接无效:服务器不可用

无法确定数据库是否存在—用户登录失败

此错误表示用于访问数据库的用户凭据不正确(例如,用户名或密码无效)。

确认正在使用的用户凭据是否正确,以及用户对目标数据库的 SQL 权限是否达到或超过最低权限。