UiPath Documentation
orchestrator
latest
false

Orchestrator 用户指南

上次更新日期 2026年5月6日

Orchestrator Credentials Proxy 调试

日志

默认情况下,Orchestrator Credentials Proxy 会记录所有异常以及初始启动和关闭信息。

要检查 Credentials Proxy 是否真的记录了 200 条请求,请在本地服务器上启动 Orchestrator Credentials Proxy,转到 Swagger 并运行 Health (未验证)端点:api/v1/Health。现在,应已记录请求。

备注:

每次更改appsettings文件后,您都需要重新启动 Credentials Proxy。

如果您按照这些步骤操作,而且除了启动和关闭之外没有其他可用日志,则意味着没有请求到达 Orchestrator Credentials Proxy。 这很可能是由 Orchestrator Cloud Robot 和 Orchestrator Credentials Proxy 计算机的基础架构或网络问题引起的。

事件查看器

所有日志均应显示在 Orchestrator Credentials Proxy 2.0.0 及更高版本的 Windows 事件查看器中。

更改日志文件目标

要更改日志文件路径,请打开appsettings.production.json文件并使用以下代码。 您可以将其C:/dev/logs替换为所需的路径:

  "NLog": {
    "throwConfigExceptions": true,
    "targets": {
      "logfile": {
        "type": "File",
        "maxArchiveFiles": 180,
        "fileName": "C:/dev/logs/nlog-${shortdate}.log",
        "layout": "${longdate} ${logger} ${message}${onexception:${newline}${exception:maxInnerExceptionLevel=10:format=shortType,message,stacktrace:separator=*:innerExceptionSeparator=
	}}"
      }
    },
    "rules": [
      {
        "logger": "*",
        "minLevel": "Information",
        "writeTo": "logconsole,logfile,eventLog"
      }
    ]
  }
  "NLog": {
    "throwConfigExceptions": true,
    "targets": {
      "logfile": {
        "type": "File",
        "maxArchiveFiles": 180,
        "fileName": "C:/dev/logs/nlog-${shortdate}.log",
        "layout": "${longdate} ${logger} ${message}${onexception:${newline}${exception:maxInnerExceptionLevel=10:format=shortType,message,stacktrace:separator=*:innerExceptionSeparator=
	}}"
      }
    },
    "rules": [
      {
        "logger": "*",
        "minLevel": "Information",
        "writeTo": "logconsole,logfile,eventLog"
      }
    ]
  }

其他日志

备注:

此过程仅应用于调试。完成后,还原这些更改,因为它将产生过多的日志。

默认日志记录级别如下所示:

  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },

如果您想获取更多日志,例如查看发送至代理的所有请求,则您需要编辑appsettings.Production.json文件并添加以下内容:

  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Information",
      "Microsoft.AspNetCore": "Information",
      "Microsoft.Hosting.Lifetime": "Information",
      "Microsoft.AspNetCore.HttpLogging.HttpLoggingMiddleware": "Information"
    }
  }
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Information",
      "Microsoft.AspNetCore": "Information",
      "Microsoft.Hosting.Lifetime": "Information",
      "Microsoft.AspNetCore.HttpLogging.HttpLoggingMiddleware": "Information"
    }
  }

如果 Information 不足,需要更多或更少,则您可以使用 LogLevels.Net 中的值。 如需更多信息,请查看 Microsoft 文档appsettings.json文件应与以下内容类似:

  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Information",
      "Microsoft.AspNetCore": "Information",
      "Microsoft.Hosting.Lifetime": "Information",
      "Microsoft.AspNetCore.HttpLogging.HttpLoggingMiddleware": "Information"
    }
  }
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Information",
      "Microsoft.AspNetCore": "Information",
      "Microsoft.Hosting.Lifetime": "Information",
      "Microsoft.AspNetCore.HttpLogging.HttpLoggingMiddleware": "Information"
    }
  }

更改appsettings文件后重新启动 Orchestrator Credentials Proxy。

使用 InMemoryStore 测试

如果您在调试时遇到问题、希望尝试其他凭据存储类型,则您可以使用 Orchestrator Credentials Proxy InMemorySecureStore类型。

备注:

仅将此过程用于测试目的。

要启用InMemorySecureStore类型,请打开appsettings.production.json文件,转到AppSettings部分,然后添加"UseInMemorySecureStore": "true"参数。

要为已断开连接的代理启用该功能,请也在SecureStoreConfigurations部分中包含以下内容:

{
  "Key": "InMemoryKey1", // can be any value
  "Type": "InMemorySecureStore",
  "Context": {
  }
}
{
  "Key": "InMemoryKey1", // can be any value
  "Type": "InMemorySecureStore",
  "Context": {
  }
}

已连接的代理无法连接

设置 Orchestrator Credentials Proxy 连接并尝试将其与 Orchestrator 链接时,您可能会遇到以下错误消息:

Request to the Credentials Proxy's unauthenticated health endpoint failed.
Request to the Credentials Proxy's unauthenticated health endpoint failed.

在连接过程中,Orchestrator 会向/api/v1/Health代理端点执行简单的GET请求。

此请求的目的是验证代理是否可以从 Orchestrator 云环境访问。如果此请求失败,则表示 Orchestrator 无法访问代理,而且连接检查将无法通过。

常见问题

  • Orchestrator Credentials Proxy 未启动:
    • 转到 Orchestrator Credentials Proxy 安装的服务器。
    • 在 IIS 中,验证 Credentials Proxy 应用程序是否正在运行。
    • 在同一台服务器上,打开浏览器并检查 Credentials Proxy URL 是否可在本地访问。
  • 连接没有有效的 HTTPS/SSL 证书。 Orchestrator 和 OCP 之间的所有通信均必须安全。
    • 确保您的 Credentials Proxy 使用有效的 HTTPS/SSL 证书。
    • (可选)如果负载均衡器是在 Orchestrator Credentials Proxy 之前配置的,则请确认它也使用安全 HTTPS 连接。
  • Orchestrator Credentials Proxy 会被防火墙、VPN 或类似的网络限制阻止。 如果无法从 Orchestrator 访问 Credentials Proxy,则请检查您的网络配置。
    • 确保 Orchestrator 出站 IP 已正确列入白名单。 请查看 Orchestrator 出站 IP 地址页面,了解更多信息。
      备注:

      如果您的组织有多个租户,它们可能托管在不同区域并使用不同的 IP 地址。仔细检查每个租户。

  • 由于服务器时间不正确,出现未验证的端点问题。
    • 如果未验证的端点出现故障,则可能是由于服务器时间设置不正确。 当系统时钟不准确时,服务器可能会将 JWT 令牌解释为无效。

调查步骤

  1. 在 IIS 中验证 Orchestrator Credentials Proxy 是否正在运行。
  2. 在浏览器中检查 Credentials Proxy URL 是否可访问、是否正确加载。
  3. 在浏览器中检查 Credentials Proxy URL 是否安全。
  4. 在 Credentials Proxy 计算机上,将日志记录级别提升为“信息 (Information) 级”,以便排除故障。完成调查后,请记得还原此更改。
  5. 在本地测试运行状况端点。 在 Credentials Proxy 计算机上,打开 Swagger 或使用 Postman 等工具发出请求:
    https://{yourCredentialsProxyUrl}/api/v1/Health
    https://{yourCredentialsProxyUrl}/api/v1/Health
    

成功响应表示代理可访问且在本地运行。

  1. 在 VPN 内测试访问权限。 用同一 VPN 内的另一台计算机(例如,客户的笔记本电脑或客户的机器人计算机)检查 Credentials Proxy URL 是否可访问。向同一/api/v1/Health端点发出请求:
    • 如果成功,则这说明可以从 VPN 内部访问 Credentials Proxy。
    • 如果失败,则客户必须解决内部网络或路由问题。
  2. 测试公开可访问性。
  3. 在 VPN 外的计算机上,检查/api/v1/Health端点:
    • 如果正常,则这说明可以从 VPN 外部访问 Credentials Proxy。
    • 如果失败,则客户必须解决内部网络或路由问题。
  4. 测试来自 Orchestrator Cloud 的连接。 创建链接到同一代理 URL 的新 Credentials Proxy:
    • 如果创建成功,则您可以删除连接。
    • 如果失败,则这表明仍然有因素阻止 Orchestrator 与 Credentials Proxy 之间的通信。
      备注:

      此时,Credentials Proxy 应可公开访问,不受防火墙限制或将 IP 列入白名单。

  5. 检索 Orchestrator 租户 IP 地址列表。
  6. 将 IP 添加到可访问 Credentials Proxy 的允许列表中。
  7. 从 VPN 外部的计算机再次测试/api/v1/Health端点。此操作应该不起作用,因为此 IP 未添加到允许列表中。
  8. 在 Orchestrator Cloud 中,再次尝试创建 Credentials Proxy:
    • 如果已正确完成所有步骤,则应已成功。
    • 如果仍然失败,则可能是防火墙或 VPN 规则存在问题,导致 Orchestrator 与 Credentials Proxy 之间无法通信。
  9. 如果问题仍然存在,则请仔细重复上述步骤并验证每个配置点。
  10. 问题解决后,请将 Credentials Proxy 计算机上的日志级别恢复为原始设置。

已断开连接的代理将不会启动或记录

断开连接的 Credentials Proxy 会在启动期间执行验证步骤,以确保它可以正确处理客户端请求。作为此流程的一部分,代理会验证 AppSettings:SecureStoreConfigurations 中定义的每个配置。 应用的特定验证逻辑取决于配置的凭据存储库的类型。

在某些情况下,代理无法启动的根本原因可能发生在启动流程的早期,以至于应用程序无法生成或写入任何日志事件。

应用程序未启动的可能原因

多个问题可能会导致 Credentials Proxy 应用程序无法启动。 以下是常见原因及其识别方法。

  • IIS 应用程序池未启动 (Windows)。 如果代理托管在 IIS 中,则请验证与代理关联的应用程序池是否正在运行。 您可以在 “应用程序池”部分下的 “IIS 管理器”中检查这一点。
  • appsettings.Production.json 中的配置无效。 无效或不完整的配置文件可能会导致代理在启动过程中失败。 请查看“配置示例”部分中的示例,了解更多详细信息。
  • AppSettings:SecureStoreConfigurations 中的配置无效。 SecureStoreConfigurations 部分规定代理如何连接到并验证凭据存储库。如果这些条目中任何条目格式错误或不完整,则应用程序将无法启动。
    • 配置中的参数无效。 确保所有配置参数均与您使用的凭据存储库类型匹配。使用不正确的参数或密钥可能导致启动验证失败。
    • 无法访问保险库。 如果配置的凭据存储库依赖外部保险库(例如,CyberArkBeyondTrust 等),而代理无法访问其或使用其进行身份验证,则启动可能会失败。
  • 其他基础架构相关问题。

调试

在调试 Credentials Proxy 时,目标是在测试复杂配置之前消除尽可能多的变量。

  • 首先使用“InMemorySecureStore”类型的最小配置。 这样您就可以确认代理是否可以成功启动,然后再引入外部依赖项。
    • AppSettings 中添加 "UseInMemorySecureStore": "true", 参数。
    • AppSettings:SecureStoreConfigurations 中添加以下内容:
      "SecureStoreConfigurations": [
        {
          "Key": "InMemoryKey1",
          "Type": "InMemorySecureStore",
          "Context": {  }
        }
      ]
      "SecureStoreConfigurations": [
        {
          "Key": "InMemoryKey1",
          "Type": "InMemorySecureStore",
          "Context": {  }
        }
      ]
      
    • 代理应不再有与配置相关的问题。 如果仍然无法启动,则原因很有可能与基础架构相关。
  • 在确认代理已使用内存配置成功启动后,请将其替换为实际凭据存储库设置(例如 CyberArkBeyondTrust 等)。
    • 请根据您的环境和存储类型更新此SecureStoreConfigurations部分。 如果应用程序启动失败,则您应该可以在以下位置找到日志:
      • Windows 事件查看器
      • 代理的已配置日志目录
    • 如果应用程序未启动且未生成任何日志,则问题可能与您环境中的基础架构或权限有关。

在这种情况下,为了有助于调试,您可以在以下位置添加此参数,以此来暂时禁用安全存储验证AppSettings

```
"SkipValidateSecureStoreConfigurations": true
```
```
"SkipValidateSecureStoreConfigurations": true
```
备注:

此参数仅应用于调试目的。启动验证用于确保代理配置正确且安全。

此页面有帮助吗?

连接

需要帮助? 支持

想要了解详细内容? UiPath Academy

有问题? UiPath 论坛

保持更新