订阅

UiPath Installation and Upgrade

UiPath 安装和升级指南

⚙ UiPath.Orchestrator.dll.config

UiPath.Orchestrator.dll.config 文件 (C:\Program Files (x86)\UiPath\Orchestrator) 定义应用于 Orchestrator 部署的参数、设置和首选项。

📘

备注:

只有管理员才能更改这些参数的值。

推荐在对 UiPath.Orchestrator.dll.config 进行更改后,手动重新启动网站。

此页面中未记录的参数不应更改,也不应在“设置”页面中具有对应的参数。

所有参数都区分大小写

App Settings

Advanced Installation Settings


EncryptionKeyPerTenant.Enabled

允许您根据 Microsoft Azure 密钥保管库帐户对每个租户使用不同的加密密钥。以下值可以归为:

  • false - 在整个 Orchestrator 实例上使用单个加密密钥。这是默认值。
  • true - 对每个租户使用不同的加密密钥,增强租户安全性,并提供更好的敏感数据隔离。

If you enable this feature, you must also fill in the EncryptionKeyPerTenant.KeyProvider parameter, as well as the ones in the SecureAppSettings section.

EncryptionKeyPerTenant.KeyProvider

Enables you to indicate which key management application to store the encryption keys generated per tenant from Orchestrator. Set it to AzureKeyVault to use a preconfigured Microsoft Azure Key Vault. We do not provide Azure Key Vault licenses. Please note that you also have to configure the parameters described in the SecureAppSettings section. If EncryptionKeyPerTenant.Enabled is set to false, this parameter is not used.

此处对加密设置所做的更改需要根据以下字段等效性,在身份服务器 appsettings.Production.json 文件中进行镜像:

Orchestrator UiPath.Orchestrator.dll.config

Identity Server appsettings.Production.json

EncryptionKeyPerTenant.Enabled

EncryptionKeyPerTenant

Azure.KeyVault.VaultAddress

Azure 密钥保管库地址

Azure.KeyVault.CertificateThumbprint

AzureKeyVaultCertificateThumbprint

Azure.KeyVault.ClientId

AzureKeyVaultClientId

Azure.KeyVault.DirectoryId

AzureKeyVaultDirectoryId

EncryptionKeyPerTenant.KeyProvider

MultiTenantEncryptionKeyProvider

队列


📘

备注:

为了使有关 cron 作业的更改生效,必须将 Database.EnableAutomaticMigrations 参数预先设置为 true

inProgressMaxNumberOfMinutes

队列项目可以处于“进行中”状态的最大时间。在此时间之后,队列项的状态将更改为“已放弃”。默认情况下,设置为 1440 分钟(24 小时)。

QueuesStatisticsScheduleCron

在“仪表板”和“事务”页面以及“图表”窗口中更新队列项统计信息的频率。默认情况下,它们每分钟更新一次。

UpdateUncompletedItemsJobCron

在数据库中查找需要移动到“已放弃”的队列的频率。默认情况下,此参数设置为每小时。

Queue.MaxSlaInMinutes

可设置的 SLA 的最大值,以分钟表示。默认情况下,该值为 129600 分钟(90 天),在 UiPath.Orchestrator.dll.config 中默认显示,包括处于更新状态的方案。

Queue.MaxSchemaFileSizeInKilobytes

JSON 架构的最大文件大小(以 KB 为单位),用于验证队列项目数据和输出。默认情况下,此设置不会显示在 UiPath.Orchestrator.dll.config 文件中。

Queue.SlaReadaheadTimeLimitHours

在进行预测时,要考虑的项目的队列项目截止时间必须落在的时间量。默认值为 24 小时。默认情况下,此参数不会显示在 UiPath.Orchestrator.dll.config 中。

Queue.MaxSpecificDataSizeInKiloBytes

新队列项目特定数据内容的大小上限,以千字节为单位。对于干净的 Orchestrator 安装,此参数处于隐藏状态,默认值为 1024 (1MB)。在升级方案中,此参数可见,且值为 204800 (200MB)。

Queue.ProcessActivationSchedule

检查未处理的队列项目之间的时间间隔。默认情况下,它设置为 30 分钟。要调整检查间隔,请指定 0 到 59 之间的值,重新启动 IIS,然后删除现有队列触发器并重新创建它。

警示


DailyAlertMailJobCron

允许您配置 cron 表达式,该表达式控制发送每日电子邮件警报的时间。这仅在启用“电子邮件警示”时有效。该报告包含前一天生成的所有 FatalError 严重性警报。默认情况下,它每天上午 7 点发送。

Alerts.Email.Enabled

启用或禁用 Fatal 和 Error 消息的电子邮件警报。此参数对应于“设置”页面中的“启用警示电子邮件”复选框。默认情况下,它设置为 false。要使其工作,还必须从“设置”页面配置与电子邮件相关的设置。默认值用于数据库的初始种子设定。之后更改该值不会切换电子邮件警报状态。

NotificationDistributerJobCron

向接口发送警示通知的频率。默认情况下,警示每 10 秒发送一次。

PeriodicErrorMailJobCron

使您能够配置 cron 表达式,该表达式控制定期发送电子邮件警示的频率。这仅在启用“电子邮件警示”时有效。默认值为每 10 分钟一次,这意味着报告包含过去 10 分钟内生成的 FatalError 严重性警示。如果未生成任何警示,则不会发送任何报告。

PasswordComplexity

控制密码复杂性的验证规则,并使用正则表达式表示。默认情况下,复杂性适用于所有密码(包括主机管理员密码),但每个租户都可以在“设置”页面的“安全”选项卡上自定义其用户登录密码复杂性。默认情况下,密码必须至少包含 8 个字符,其中至少有一个字母和一个数字。

SystemJobs.DetectNotRespondingRobots.MaxAlertCount

用于限制机器人无响应时发送的警示数。如果 Orchestrator 实例处理大量机器人,并且大多数机器人经常无响应,则此参数非常有用。请注意,它在配置文件中默认不显示。例如,如果要将机器人无响应时所收到的警示数限制为 10,则可将 <add key="SystemJobs.DetectNotRespondingRobots.MaxAlertCount" value="10" /> 添加到 UiPath.Orchestrator.dll.config 文件的所有其他警示参数下。请注意,如果应用此设置,当警示总数高于配置的警示总数时,事件查看器中会引发警告,例如:Alerts not published: total number of unresponsive sessions (21) is bigger than the configured max allowed (10).

SystemJobs.LicenseExpirationAlert.DaysBefore

允许您在收到电子邮件警报时定义许可证到期日期之前的时间间隔。默认值为 180,90,30,14,7,1,这意味着您收到电子邮件警报 6 次:许可证到期前 180、90、30、14、7 和 1 天。您可以定义较少的值,以减少电子邮件警示的发送频率。例如,可以通过在 UiPath.Orchestrator.dll.config 文件中添加以下键实现:<add key="SystemJobs.LicenseExpirationAlert.DaysBefore" value="90,30,14" />

部署


Orchestrator 使用组合式存储库。包元数据将保存到 SQL 数据库,以便更快搜索和筛选。包将保存到通过 Storage.TypeStorage.Location 参数指定的位置。

📘

备注:

不支持在程序包专用文件夹中使用复制粘贴命令。

Storage.Type

定义包和执行媒体保存到的目标。它可以使用以下目标填充:

  • FileSystem - <add key="Storage.Type" value="FileSystem" />
  • Azure - <add key="Storage.Type" value="Azure" />
  • Amazon - <add key="Storage.Type" value="Amazon" />
  • Minio - <add key="Storage.Type" value="Minio" />

Storage.Location

定义包和执行媒体保存到的实际位置。

🚧

重要

以下情况下,Storage.Location 参数是必需的:

  • 从任何 2020.10 之前版本的 Orchestrator 升级;
  • 前一个 NuGet.Repository.TypeLegacy
  • 之前的 NuGet.Packages.Path 没有使用默认值。

目标

位置

文件系统

使用以下格式提供绝对路径:RootPath=C:\FolderName\AnotherFolderName
示例:<add key="Storage.Location" value="RootPath=C:\FolderName\AnotherFolderName" />

在提供的文件夹中,创建以下文件夹结构:
Orchestrator-Host\Libraries - 一个专用于主机订阅源中存储的库的文件夹。
Orchestrator-[tenantKey] - 每个租户一个文件夹。租户由在数据库中找到的租户密钥标识。例如 Orchestrator-12ab1234-a567-456b-a12b-ab3456b123ab
对于每个租户文件夹,还将创建其他三个子目录:
\ExecutionMedia
\Packages
\Libraries

文件保存在指定位置的专用文件夹中。默认情况下,它们存储在以下路径中:C:\Program Files (x86)\UiPath\Orchestrator\Storage

Azure

提供一个连接字符串。
示例:<add key="Storage.Location" value="DefaultEndpointsProtocol=https;AccountName=usr;AccountKey=...;EndpointSuffix=core.windows.net" />

亚马逊

提供一个连接字符串。
示例:<add key="Storage.Location" value="EndpointRegion=eu-west-3;accessKey=AKIAZGUEIGXUJ3BBI4MW;secretKey=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;useHttp=false" />

Minio

提供一个连接字符串。
示例:<add key="Storage.Location" value="host=localhost:9001;accessKey=YVKYFJ0ZY246KDKP0634;secretKey=bdBEk2ubhIFsTNPuQ80PjKL+oqZBj67HoSWBFnw1" />

示例

<add key=\"Storage.Type\" value=\"Azure\" />
<add key=\"Storage.Location\" value=\"DefaultEndpointsProtocol=https;AccountName=usr;AccountKey=...;EndpointSuffix=core.windows.net\" />

The configuration above instructs Orchestrator:

  • to store the package metadata in the SQL database;
  • to keep the actual files in the Azure Blob storage at the location indicated by the DefaultEndpointsProtocol=https;AccountName=usr;AccountKey=...;EndpointSuffix=core.windows.net connection string;
  • to use the default naming convention for the Azure container name - Orchestrator-tenantKey.

🚧

重要

If you have more than 99 tenants in Orchestrator, increase your default AWS S3 bucket account limit to match the number of tenants. This is required because a separate bucket is created for each tenant.

NuGet.Packages.ApiKey

NuGet 帐户的许可证密钥。如果活动和包存储在相同的 NuGet 订阅源中,则此参数的值必须与 NuGet.Activities.ApiKey 的值相同。默认值用于数据库的初始种子设定。请注意,系统也会接受任意字符串。

NuGet.Activities.ApiKey

NuGet 帐户的许可证密钥。如果活动和包存储在相同的 NuGet 订阅源中,则此参数的值必须与 NuGet.Packages.ApiKey 的值相同。请注意,也接受任意字符串。可以通过监视文件系统或使用 Redis 实现多个 Orchestrator 节点和接口之间的包同步。这可以使用以下配置进行配置。推荐的方式是通过 Redis。

Processes.AllowUpdateWithRunningJobs

指定是否可以删除运行中或待处理的作业相关联的流程。请注意,默认情况下,此参数是隐藏的。以下值可用:

  • true - 在具有正在运行或挂起的关联作业时,可以删除流程。
  • false - 在具有正在运行或挂起的关联作业时,无法删除流程。若尝试删除某个流程(本例中),则将显示以下错误消息:“目前无法修改此流程,因为存在与其关联的活动作业。(#1666)”。这是默认值。

例如,如果您希望能够在运行关联的作业时删除流程,请在 UiPath.Orchestrator.dll.config 文件中添加 <add key="Processes.AllowUpdateWithRunningJobs" value="true" />

Deployment.Libraries.AllowTenantPublish

允许您指定使用主机订阅源的租户是否能够将库上传到订阅源中。以下值可用:

  • true - 在租户级别上传的库会传播到主机订阅源。这是默认值。
  • false - 在租户级别上载的库不会传播到主机订阅源。但是,请注意,用户确实有权访问订阅源中的现有库。

您也可以从用户界面配置此功能。在主机级别的“设置”页面上可以找到相应选项“允许租户用户上传到订阅源”。详情请参阅此处

Storage Buckets


Buckets.ContentSecurityPolicy

用于指示 Orchestrator 可以请求的受信任域以外的域。多个值可以输入为以逗号分隔的列表。此参数将覆盖与 Azure 和 AWS 相关的相应 Orchestrator 设置,因此同时请确保根据需要添加 Azure 和/或 AWS。此参数在 UiPath.Orchestrator.dll.config 文件中默认不显示。

Buckets.AvailableProviders

Used to control which providers can be used in creating storage buckets. The available providers are: Orchestrator, Amazon, Azure, Minio, and FileSystem. Multiple values can be entered with a comma separator.
Note: By default, this key is not displayed in the UiPath.Orchestrator.dll.config file, and only the following providers are selected: Orchestrator, Amazon, Azure, and Minio. The default behavior is specific to both clean installations and upgrades. If the key is visible, the available providers are limited to those specified as Buckets.AvailableProviders values.
Example: To restrict the use of Minio, add the following key:

<add key="Buckets.AvailableProviders" value="Orchestrator,Amazon,Azure" />

Buckets.FileSystem.Allowlist

Provides a way to control the use of FileSystem buckets. The setting comes with no value configured by default. This, along with the fact that FileSystem is disabled by default on both new installations and upgrades, means that no FileSystem paths can initially be used. For security reasons, in order to use the FileSystem feature, an Administrator must first enable FileSystem, and then explicitly allow access to a list of folders or network shares by attributing values to Buckets.FileSystem.Allowlist.
Multiple values, separated by the | character, can be entered. Note that the paths must be fully qualified, either rooted with a drive or a UNC path (e.g. c:\, c:\test, \\servershare\shared), and each of them represents a prefix allowed to be used for any bucket. A bucket can be created on that particular path or any subpath.

🚧

重要

通过 Buckets.FileSystem.Allowlist 设置创建文件系统允许列表会带来一系列安全隐患,因此强烈建议您在继续操作之前参考安全使用文件系统存储允许列表

Authorization


外部身份验证提供程序的配置已移到身份服务器的“外部提供程序”页面。

📘

备注:

The WindowsAuth.Enabled, WindowsAuth.Domain and AcceptedRootUrls parameters have to be configured before you can import Active Directory groups.

WindowsAuth.Enabled

Enables or disables Windows Active Directory's user import functionality. To enable the authentication using Windows Active Directory, please configure the External Providers in Identity Server.

WindowsAuth.GroupMembershipCacheExpireHours

Enables you to configure the AD group membership cache. The default value is 1, meaning changes made to AD group membership are synced with Orchestrator once every hour for active user sessions. See Behavior section here.

AcceptedRootUrls

使您能够添加受信任 URL 的列表。如果此设置没有任何值,则没有人可以访问 Orchestrator。如果要添加多个 URL,请不要使用空格,并用逗号 (,) 分隔项目,例如 "https://server1,https://server2"

Auth.Cookie.Expire

自动注销的时间量(以分钟为单位)。默认情况下,这设置为 30 分钟。

Auth.Bearer.Robot.Expire

您的机器人持有者令牌过期后的时间量。默认情况下,设置为 30 分钟。

Auth.Cookie.ValidateInterval

密码重置后或检测到新会话后,直到注销之前的时间量(以秒为单位)。默认情况下,这设置为 60 秒。默认情况下,此参数不会显示在 UiPath.Orchestrator.dll.config 文件中。例如,如果要将其设置为 20 秒,请添加以下键值:<add key="Auth.Cookie.ValidateInterval" value="20"/>

Auth.DisabledPermissions

使您能够配置权限,以便在使用 API 时从用户界面禁用权限并将其忽略。请注意,默认情况下,此参数是隐藏的。在 API 中使用权限时需要添加这些权限,并且必须用逗号分隔权限。例如,如果要禁用库和计算机的删除权限,则需在添加如下键值:<add key="Auth.DisabledPermissions" value="Machines.Delete,Libraries.Delete" />

Auth.RememberMe.Enabled

使您能够配置是否显示“登录”页面的“记住我”复选框。默认情况下,参数设置为 true,表示将显示复选框。设置为 false 即可将其隐藏。此设置在 UiPath.Orchestrator.dll.config 文件中默认不显示。

Auth.AllowChangePassword

允许您配置用户是否可以在“配置文件”页面的“安全”部分更改其密码。此设置在 UiPath.Orchestrator.dll.config 文件中默认不显示。以下值可用:

  • true - 用户不能在“个人资料”页面更改他的密码。此为默认值。
  • false - 用户不能在“配置文件”页面更改他的密码。

Auth.AllowSelfEmailUpdate

使您能够配置用户是否可以从“个人资料”页面的“常规”部分更改其电子邮件地址。默认情况下,此参数设置为 true,这意味着您可以更新它。将参数设置为 false 即可使字段只读。此设置在 UiPath.Orchestrator.dll.config 文件中默认不显示。

ExternalAuth.AccessTokenAuth.Enabled

允许您配置是否可以使用 Auth0 颁发的承载访问令牌对 Orchestrator 进行身份验证。此设置在 UiPath.Orchestrator.dll.config 文件中默认不显示。以下值可用:

  • true - 用户无法使用 Auth0 发布的访问令牌发出身份验证请求。仅当您为 ExternalAuth.AccessTokenAuth.Audience 参数设置有效受众时,才考虑这一点。
  • false - 用户无法使用 Auth0 发布的访问令牌发出身份验证请求。此为默认值。

ExternalAuth.AccessTokenAuth.Audience

Enables you to control the target audience of the access token. This parameter needs to be set to a valid audience, which is used to check against the Auth0 token audience. For example, if you want to set the audience to https://cloud.uipath.com, you need to add the following key: <add key="ExternalAuth.AccessTokenAuth.Audience" value="https://cloud.uipath.com" />. This setting is not displayed by default in the UiPath.Orchestrator.dll.config file.

ExternalAuth.ShowPII

通过添加以下键,允许显示 Orchestrator PII:<add key="ExternalAuth.ShowPII" value="true" />。默认情况下,该键在 UiPath.Orchestrator.dll.config 中不显示,并且此默认行为即为不允许显示 PII。

RestrictBasicAuthentication

Moved to Identity Server appsettings.json.

EnableBasicAuthenticationForHostTenant

Moved to Identity Server appsettings.json.

Load Balancer


These settings should only be modified if you are using a load balancer.

LoadBalancer.UseRedis

使用 Redis 作为数据库,将消息和缓存在通过负载均衡器连接的所有计算机之间分发。默认情况下,它设置为 false

LoadBalancer.Redis.ConnectionString

Can only be used if LoadBalancer.UseRedis is set to true. A connection string that enables you to set up your Redis server, which contains the URL of the server, the password, and the port used with Redis. It is also possible to enable SSL encrypted connections between the Orchestrator nodes and the Redis service. For more information, please click here. Examples:

  • 启用 SSL - <add key="LoadBalancer.Redis.ConnectionString" value="DOCWREDIS02:6379,password=12345678,ssl=true" />
  • 未启用 SSL - <add key="LoadBalancer.Redis.ConnectionString" value="DOCWREDIS02:6379,password=12345678" />

Password Vault


Plugins.SecureStores

此设置应更新为包括您正在使用的任何凭据存储的插件,例如 CyberArk CCP 或 Azure Key Vault。凭据存储插件位于安装目录的 \Orchestrator\Plugins 文件夹中。例如:

  • 单一存储:<add key="Plugins.SecureStores" value="UiPath.Orchestrator.CyberArk.dll"/>
  • 多存储:<add key="Plugins.SecureStores" value="UiPath.Orchestrator.CyberArk.dll,UiPath.Orchestrator.SecureStore.CyberArkCCP.dll,UiPath.Orchestrator.AzureKeyVault.SecureStore.dll"/>

📘

备注:

使用现有的 CyberArk 集成升级 Orchestrator 实例时,此设置会预先填充 CyberCrk 插件。对于所有其他安装,默认情况下该设置值为空。

Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath

允许 CyberArk 插件在自定义安装路径中搜索 CLIPasswordSDK64.exe。例如,如果 D:\CustomFolder\ 是 CyberArk 的安装目录,则需要添加以下键值:<add key="Plugins.SecureStores.CyberArk.CLIPasswordSDKExePath" value="D:\CustomFolder\CLIPasswordSDK64.exe"/>。此应用程序设置的默认值为 C:\Program Files (x86)\CyberArk\ApplicationPasswordSdk\CLIPasswordSDK64.exe

Plugins.SecureStores.CyberArk.UsePowerShellCLI

用于在使用路径身份验证时,从 CyberArk 保险库中检索凭据。默认情况下,该密钥是隐藏的。默认值为 false。添加以下密钥可将其启用:<add key="Plugins.SecureStores.CyberArk.UsePowerShellCLI" value="true"/>

Azure AD 身份验证


The configuration for Azure AD authentication has been moved to Identity Server's External Providers page.

日志


Logs.RobotLogs.ReadTarget

使您能够配置 Orchestrator 从中读取和填充日志的源(例如 databaserobotelasticbuffer)。

RobotsLogs.Flush.Interval

此设置允许您更改 SubmitLogs 端点的刷新间隔。请注意,默认情况下,它不会显示在 UiPath.Orchestrator.dll.config 中。除非另有说明,否则其值为 0 秒。以下示例显示了如何将刷新间隔设置为 60 秒,这意味着机器人每 60 秒将日志发送到服务器一次。

<add key="RobotsLogs.Flush.Interval" value="60" />

🚧

重要

如果机器人在刷新间隔完成之前断开连接,则最后一批日志将在下次连接到 Orchestrator 时发送。

RobotsLogs.Flush.BatchSize

此设置的目的是调整 SubmitLogs端点的刷新大小。默认情况下,它不显示在 UiPath.Orchestrator.dll.config 中。除非另有说明,否则它的值是 100 条日志消息条目,表示机器人每批次将 100 条日志发送到服务器。

<add key="RobotsLogs.Flush.BatchSize" value="100" />

Logs.RequestAbortedLogBehavior

针对在取消正在执行的操作时引发的取消异常指定日志记录行为。例如,当您单击某个按钮,并在系统执行操作前又单击另一个按钮时,便会产生此类异常。请注意,默认情况下,此参数是隐藏的。以下值可用:

  • Ignore - 如果相应的请求已中止,则忽略所有取消异常。这是默认值。
  • Info - 取消异常的严重性级别记录为 Info
  • None - 取消异常的严重性级别记录为 Error

例如,如果您不想记录任何取消异常,请在配置文件中添加 <add key="Logs.RequestAbortedLogBehavior" value="Ignore" />

Logs.Elasticsearch.SharedIndex

允许您登录到所有租户的相同索引。必须将它设置为与用于 NLog 目标中的 index 参数相同的值。例如,<add key="Logs.Elasticsearch.SharedIndex" value="robotlogs" />。详情请参阅此处。请注意,默认情况下,此参数是隐藏的。

Logs.Elasticsearch.EnableFolderIdFilter

控制 2019.10 之前生成的日志的可见性,这些日志无法被日志页面上的包含文件夹筛选。默认情况下,该参数设置为 true,这意味着日志是隐藏的。将其设置为 false 后就可以显示日志:<add key="Logs.Elasticsearch.EnableFolderIdFilter" value="false" />

Logs.Elasticsearch.Username

The username required for reading logs in Elasticsearch. Note that you need to configure this parameter only if Elasticsearch authentication is enabled, and you do not use an NLog target. When configuring the parameter, make sure its value matches the Elasticsearch server settings. For more details, see X-Pack Authentication.

Logs.Elasticsearch.Password

The username required for reading logs in Elasticsearch. Note that you need to configure this parameter only if Elasticsearch authentication is enabled, and you do not use an NLog target. When configuring the parameter, make sure its value matches the Elasticsearch server settings. For more details, see X-Pack Authentication.

Logs.Elasticsearch.OAuthEnabled

将此参数设置为 true 以启用 OAuth2,并使用基于令牌的身份验证机制在 Elasticsearch 中读取机器人日志,作为用户和密码系统的替代方案。默认情况下,此参数设置为 false

When enabling OAuth authentication, you still need to provide the username and password as in the default authentication method. This is required because the initial token is generated based on those credentials.

See OAuth2 Authentication for detailed instructions on how to configure OAuth2 authentication for Elasticsearch.

Logs.Elasticsearch.OAuthExpireInSeconds

使您能够在用于读取 Elasticsearch 中机器人日志的访问令牌过期并刷新前设置时间(以秒为单位)。其默认值和建议值为 1200 秒(20 分钟),最大值为 3600 秒(60 分钟)。要使令牌无效,您可以使用 Orchestrator 用户界面中的专用按钮。

Before changing the token validity, make sure that Logs.Elasticsearch.OAuthEnabled is set to true and that you have properly configured the Elasticsearch server. For more on this, see OAuth2 Authentication.

Webhooks


Webhooks设置已移至Webhooks Service的appsettings.json文件

Scalability


Scalability.Heartbeat.PeriodSeconds

时间间隔(以秒为单位),机器人将在此间隔内向 Orchestrator 发送心跳,让 Orchestrator 知道其状态。默认情况下,它设置为 30 秒。

Scalability.Heartbeat.FailureThreshold

机器人发送的连续失败的检测信号数,直到在 Orchestrator 中将其标记为无响应。默认情况下,它设置为 4,这意味着在检测信号失败 2 分钟(4 x 30 秒 = 2 分钟)后,机器人被标记为无响应。

Scalability.SignalR.Enabled

指定机器人服务是否应该订阅 Orchestrator 的 SignalR 通道。默认情况下,它设置为 true。此参数用于数据库的初始种子设定。若要在安装后进行更改,请使用“租户”或“主机”级别的“设置”页面。

Scalability.SignalR.Transport

指定用于连接到 Orchestrator 的 SignalR 通道的传输协议。以下值可以归为(任意组合 - 按位或):

  • WebSocketTransport = 1
  • ServerSentEventsTransport = 2
  • LongPollingTransport = 4
  • Default value: 7 (WebSocketTransport | ServerSentEventsTransport | LongPollingTransport)

此参数用于数据库的初始种子设定。若要在安装后进行更改,请使用租户主机级别的“设置”页。

Scalability.AzureSignalR.ConnectionString

Helps you enable Azure SignalR Service, facilitating direct communication between your Robot fleet and the SignalR Service
Orchestrator no longer intermediates it. This option should be used only if you have an Azure-hosted Orchestrator instance. It can be used in conjunction with the Scalability.AzureSignalR.ConnectionCount key. This parameter is enabled in our Cloud offering. It is not displayed by default in the UiPath.Orchestrator.dll.config file.
Please note that, if enabled, Robots with a version lower than 2019.2 rely only on the Heartbeat protocol to communicate to Orchestrator, meaning that any command given from Orchestrator is picked up by a Robot only every 30 seconds. To enable this parameter, populate its value with the connection string to Azure Service. Example: <add key="Scalability.AzureSignalR.ConnectionString" value="Endpoint=https://test.signalr.net;AccessKey=M1ug+sBu07hyyi12AgyJ52SEd4OgC2Mm6BvllVHCC9c=;Version=1.0;" />.

Scalability.AzureSignalR.ConnectionCount

使您能够更改服务器和 Azure SignalR 服务之间的连接数(每个集线器)。默认值为 5。示例:<add key="Scalability.AzureSignalR.ConnectionCount" value="7" />。默认情况下不显示此设置,若没有 Scalability.AzureSignalR.ConnectionString 键,此设置将无法使用。

Scalability.SignalR.RequireStickySessions

启用粘滞会话。如果设为 true,则启用所有传输,并且 Orchestrator 假定负载均衡器已启用粘性会话。在 UiPath.Orchestrator.dll.config 中启用粘滞会话但不在负载均衡器上启用将导致 SignalR 连接失败。

Insights


Insights.TableCreationRetryCount

使您能够设置新建表格的最大重试次数。默认情况下,该值设置为 3
注意:此设置是可选的,默认情况下不会显示在UiPath.Orchestrator.dll.config中。

Insights.TableCreationRetryBackoffSeconds

重试尝试之间相隔的时间量(以秒为单位)。默认情况下,该值设置为 60
注意:此设置是可选的,默认情况下不会显示在 UiPath.Orchestrator.dll.config 文件中。

Insights.Ingestion.QueryTimeout

对于针对 Orchestrator 数据库运行以填充 Insights 数据库的查询,SQLServer 超时。默认情况下,该设置不会在 UiPath.Orchestrator.dll.config 文件中显示。如果在从 Orchestrator SQLServer 提取 Insights 的后台作业中遇到超时错误,则应考虑对其进行更新。

Analytics


Telemetry.Enabled

Enables or disables the usage and performance data collection that UiPath uses to help diagnose problems and improve Orchestrator. For more details about UiPath’s privacy practices, please review the privacy statement. The following values are available:

  • true - 遥测功能已启用。这是默认值。
  • false - 遥测功能已禁用。

也可以在安装或更新 Orchestrator 实例时选择加入或退出性能和使用情况数据收集,如此处所述。

Media Recording


MediaRecording.Enabled

将它设置为 false 可禁用记录功能。默认情况下,它设置为 true,这意味着该功能已启用。文件存储使用 Storage.TypeStorage.Location 参数进行配置。

分页


Pagination.Limits.Enabled

对于 Cloud Platform 和内部部署 Orchestrator 实例的全新安装,设置默认情况下设置为 true。为具有分页参数的 API 端点的所有调用添加默认 $top 值(例如,分页参数可为 odata/Users)。

触发器


Triggers.DisableWhenFailedCount

You can configure a trigger to get disabled automatically after a certain number of failed launches and no successful runs occurring in a specific number of days. In this context, Triggers.DisableWhenFailedCount allows you to adjust the number of failed runs whereas Triggers.DisableWhenFailingSinceDays enables you to change the number of days. By default, the Triggers.DisableWhenFailedCount value is 10, and the Triggers.DisableWhenFailingSinceDays value is 1, which means that the trigger is disabled after 10 unsuccessful attempts to launch if there were no successful runs in the past day.
To stop triggers from being disabled when they fail, you must set Triggers.DisableWhenFailedCount to 0.

Triggers.JobsCountStrategy

用于为通过触发器启动的作业选择作业计数策略。默认隐藏。提供以下选项:

  • PerProcess - 触发器启动指定数量的作业,同时考虑到指定流程的所有待处理作业。例如,为同一流程定义的两个触发器分别启动 3 个和 5 个作业。如果第一个触发器在给定的时间点启动了 3 个作业,则当第二个触发器触发时,将启动 2 个作业,以达到 5 个所需的作业。在配置文件中添加以下密钥以使用此策略:<add key="Triggers.JobsCountStrategy" value="PerProcess" />。这是默认值。
  • PerTrigger - 触发器启动指定数量的作业,同时考虑到该触发器先前启动的任何现有作业。例如,定义了一个触发器以在给定的时间点启动 9 个作业。如果再次触发此触发器之前已成功完成 2 个作业,则 Orchestrator 将启动另外 2 个作业,以达到 9 个所需的作业。在配置文件中添加以下密钥以使用此策略 <add key="Triggers.JobsCountStrategy" value="PerTrigger" />
  • NoLimit - 触发器将启动指定数量的作业,而与任何现有的待处理作业无关。例如,定义了一个触发器以在给定的时间点启动 5 个作业。第二次触发触发器时,将启动另外 5 个作业。在配置文件中添加以下密钥以使用此策略:<add key="Triggers.JobsCountStrategy" value="NoLimit" />

Others


PreventAutoRefresh.Enabled

Control whether or not the Jobs page under the Monitoring menu auto-refreshes for each newly created job. The <add key="PreventAutoRefresh.Enabled" value="true" /> key can be added to restrict auto-refreshing of the page when jobs are running. The key is not displayed by default, and the default value is false meaning Orchestrator auto-refreshes the page for each new job.
The page is updated when filters are applied or job states change, irrespective of the PreventAutoRefresh.Enabled parameter.

QueueActivation.TriggerCache.Expiration.Minutes

控制如何为带有关联队列触发器的队列生成简单的 Quartz 触发器。

  • 如果设为 0,则会为队列中添加的每个项目生成 Quartz 触发器。
  • 如果设置为大于 0 的值,系统将检查是否已为该队列创建 Quartz 触发器,并阻止它创建另一个。当满足队列触发器条件时,将删除此限制。如果队列触发器无法执行此操作,则系统将根据为 QueueActivation.TriggerCache.Expiration.Minutes 参数设置的值删除限制。默认值为 5

DefaultFolderIsClassic

控制是否启用传统文件夹模型。默认情况下,它设置为 false 表示传统文件夹被禁用,仅现代文件夹可用。

Jobs.TerminatingJobsTimeout

配置适合将终止作业标记为“失败”所经过的时间。默认值为 1440,这意味着除非作业至少有一天时间一直处于“终止”状态,否则无法将其标记为“失败”。默认情况下,此参数处于隐藏状态。

Jobs.TerminatingJobsCleanupCron

配置 cron 表达式,该表达式可控制将终止作业标记为“失败”的后台作业的频率。除非作业至少在 Jobs.TerminatingJobsTimeout 参数中设置的持续时间处于“终止”状态,否则无法将其标记为“失败”。Jobs.TerminatingJobsCleanupCronJobs.TerminatingJobsTimeout 的默认值分别为 0 0 0/3 1/1 * ? *1440,这意味着后台作业每三小时运行一次,并且只会将已经至少有一天时间一直处于“终止”状态的作业标记为“失败”。默认情况下,此参数处于隐藏状态。

PW.StopExploringCron

配置 cron 表达式,该表达式可控制检查浏览个人工作区的用户是否仍具有所需浏览权限(查看编辑文件夹)的后台作业的频率。默认值为 0 25 * ? * *,表示后台作业在每小时的第 25 分钟开始运行。如果用户没有所需权限,则浏览会话将终止。默认情况下,此参数处于隐藏状态。

Features.LongRunning.Enabled

Configure whether long running workflows are supported in your instance or not. Add the following key to enable it: <add key="Features.LongRunning.Enabled" value="true" />.

Tasks.ModuleEnabled

Configure whether the Actions feature is enabled in your instance. Add the following key to enable it: <add key="Tasks.ModuleEnabled" value="true" />. This setting makes the feature available at the instance level. To configure it on a per-tenant basis, follow the steps here. The Features.LongRunning.Enabled parameter needs to be set to true for this setting to take effect.

Features.SmartCardAuthentication.Enabled

配置是否在您的实例中启用智能卡身份验证。添加以下密钥将其启用:<add key="Features.SmartCardAuthentication.Enabled" value="true" />

ActiveDirectory.SearchResultsSizeLimit

Moved to Identity Server appsettings.json.

OData.BackwardsCompatible.Enabled

允许您控制在 Orchestrator API 中解析特殊字符的方式。如果设置为 true,则分析请求和响应正文中的特殊字符。默认情况下,此参数是隐藏的,并设置为 false

NotRespondingRobotsJobStartDelay

使您能够设置升级后对机器人状态执行第一次检查的延迟时间(以秒为单位)。此参数在 UiPath.Orchestrator.dll.config 中默认不显示。

Upload.Queues.MaxNumberOfItems

使您能够使用批量上传功能减少一次可上传的最大项目数。默认值为 15000。请注意,默认情况下,此参数在 UiPath.Orchestrator.dll.config 中不显示。

Processes.FilterOutDeleted

使您能够优化 Orchestrator 检索流程的方式。优化是通过删除对孤立流程(其关联包已删除)的不必要验证实现的。这提高了实例的整体性能,尤其是在大型部署的情况下。以下值可用:

  • false - 已优化包检索,不会为孤立的流程执行验证。
  • true - 包检索优化。

Note that this parameter is hidden and set to true by default, meaning process retrieval is not optimized.

CertificatesStoreLocation

Specify the certificate for your Orchestrator instance is installed on the local machine certificate store using the following setting: <add key="CertificatesStoreLocation" value="LocalMachine" />. Make sure that AzureKeyVaultCertificateStoreLocation in appsettings.Production.json has the same value.

ProxyIntegration.Enabled

Provides a way to control the proxy integration. By default, the parameter is not displayed in UiPath.Orchestrator.dll.config, and its value is set to true, which means that proxy integration is enabled unless otherwise specified. Use to disable proxy integration.

SecureAppSettings


EncryptionKey

用于保护凭据资产密码的加密密钥。如果使用具有网络负载均衡器的环境,则此密钥在所有计算机上均应相同。

通过以下参数,您可以设置 Azure 密钥保管库,您可以在其中存储基于租户的加密密钥。请注意,这些参数只能在 EncryptionKeyPerTenant.Enabled 设置为 trueEncryptionKeyPerTenant.KeyProvider 设置为 AzureKeyVault 时使用。此外,请确保在 Azure 密钥保管库的访问策略中向 Orchestrator 实例提供所有密钥、密码和证书权限。有关完整过程,请参阅此页

Azure.KeyVault.ClientId

Orchestrator 实例的应用程序 ID。这可以在 Azure 的“应用程序注册”中找到,并且应具有 ae11aa1a-1234-1234-a123-a12a12aaa1aa 格式。此设置在 UiPath.Orchestrator.dll.config 文件中默认不显示。示例:<add key="Azure.KeyVault.ClientId" value="ae11aa1a-1234-1234-a123-a12a12aaa1aa" />

Azure.KeyVault.CertificateThumbprint

Azure 为 Orchestrator 证书生成的指纹。您可以在 Azure 中的“应用程序服务”>“您的实例”>“SSL 设置”>“私有证书”(或“公共证书”)中找到此值。此设置在 UiPath.Orchestrator.dll.config 文件中默认不显示。示例:<add key="Azure.KeyVault.CertificateThumbprint" value="1234123412341234123412341234124312341234" />

Azure.KeyVault.VaultAddress

Azure 密钥保管库的 DNS 名称。这可以在保管库“概述”的“DNS 名称”字段中找到,并且应具有 UiPath.Orchestrator.dll.config 格式。此设置在 UiPath.Orchestrator.dll.config 文件中默认不显示。示例:<add key="Azure.KeyVault.VaultAddress" value="https://CustomVaultName.vault.azure.net/" />

Azure.KeyVault.DirectoryId

指示组织在 Azure 门户中显示的目录 ID。如果将每个租户加密密钥存储在 Azure 密钥库中,则必须提供。示例:<add key="Azure.KeyVault.DirectoryId" value="c9d0e174-684e-469e-84ea-d32c863ad534" />

身份服务器设置

本节包含用于配置 SSO 登录、S2S 访问令牌和机器人配置访问令牌的设置。

单点登录


以下参数允许您通过身份服务器配置 SSO 登录:

ExternalAuth.System.OpenIdConnect.Enabled

启用/禁用 Orchestrator 与外部身份验证系统的连接。默认情况下,该值设置为 true

ExternalAuth.System.OpenIdConnect.Authority

允许您设置外部身份验证系统的位置。默认情况下,该值设置为 https://Orchestrator/Identity,其中 Orchestrator 是 Orchestrator 的安装地址。

ExternalAuth.System.OpenIdConnect.ClientId

使您能够设置在身份服务器中注册的 Orchestrator 应用程序 ID (clientId)。该值在安装时生成并保存在身份服务器中。

ExternalAuth.System.OpenIdConnect.ClientSecret

使您能为 Orchestrator 应用程序设置客户端密码,以由外部身份验证系统识别。该值在安装时生成并保存在身份服务器中。

ExternalAuth.System.OpenIdConnect.RedirectUri

在对 Identity Server 进行身份验证后,指定到 Orchestrator 的重定向 URL。此 URL 在 Identity Server 和 Orchestrator 中自动预配置,您不应更改它。其默认值为 http://Orchestrator/signinsystemopenidconnect

ExternalAuth.System.OpenIdConnect.PostLogoutRedirectUri

用户注销 Orchestrator 后,身份服务器重定向到的地址。此值会自动填充为您的 Orchestrator URL。

例如,UiPath.Orchestrator.dll.config 应包含以下键:

<add key="ExternalAuth.System.OpenIdConnect.Enabled" value="true" />
<add key="ExternalAuth.System.OpenIdConnect.Authority" value="https://Orchestrator/Identity" />
<add key="ExternalAuth.System.OpenIdConnect.ClientId" value="orchestrator" />
<add key="ExternalAuth.System.OpenIdConnect.ClientSecret" value="49C1A7E1-0C79-4A89-A3D6-A37998FB86B0" />
<add key="ExternalAuth.System.OpenIdConnect.RedirectUri" value="https://Orchestrator/signinsystemopenidconnect" />
<add key="ExternalAuth.System.OpenIdConnect.PostLogoutRedirectUri" value="https://Orchestrator/" />

集成


为了将数据安全地传播到 Identity Server,Orchestrator 需要一个访问令牌以进行令牌身份验证。此令牌通过客户端凭据流 (S2S) 从 Identity Server 中获取。应将以下键添加到 UiPath.Orchestrator.dll.config

IdentityServer.Integration.Enabled

启用/禁用身份服务器与 Orchestrator 的集成。默认情况下,该值设置为 true

IdentityServer.Integration.Authority

允许您设置身份服务器的位置。默认情况下,该值设置为 https://Orchestrator/Identity,其中 Orchestrator 是 Orchestrator 的安装地址。

IdentityServer.Integration.ClientId

允许您设置用于生成 S2S 访问令牌的应用程序 ID(客户端 ID),这些令牌在 Identity Server 中注册。该值在安装时生成。

IdentityServer.Integration.ClientSecret

使您能为 Orchestrator S2S 应用程序设置客户端密码,以由身份服务器识别。该值在安装时生成。

IdentityServer.Integration.AccessTokenCacheBufferInSeconds

使您能够设置访问令牌缓存缓冲区过期前的时间(以秒为单位)。默认情况下,该值设置为 50

IdentityServer.Integration.UserOrchestratorApiAudience

Identity Server 可以生成具有不同受众中的多个访问令牌。使用具有此受众的用户访问令牌可以授权 Orchestrator API 请求。默认情况下,该值设置为 OrchestratorApiUserAccess

<add key="IdentityServer.Integration.Enabled" value="true" />
<add key="IdentityServer.Integration.Authority" value="https://Orchestrator/Identity" />
<add key="IdentityServer.Integration.ClientId" value="orchestratorapiaccess" />
<add key="IdentityServer.Integration.ClientSecret" value="a5d57b1d-5b25-49ba-bff7-33aa57f96a58" />
<add key="IdentityServer.Integration.AccessTokenCacheBufferInSeconds" value="50" />
<add key="IdentityServer.Integration.UserOrchestratorApiAudience" value="OrchestratorApiUserAccess" />

为了使用由 Identity Server 生成的客户端凭据 (S2S) 访问令牌,Orchestrator 需要将以下键值添加到 UiPath.Orchestrator.dll.config

IdentityServer.S2SIntegration.Enabled

启用/禁用 S2S 访问令牌的使用权限。它在 UiPath.Orchestrator.dll.config 中没有默认值。

IdentityServer.Integration.S2SOrchestratorApiAudience

允许您设置 Orchestrator 在验证 S2S 访问令牌时将检查的受众。默认情况下,该值设置为 OrchestratorApiS2SAccess

请确保 UiPath.Orchestrator.dll.config 同时包含以下预先存在的键,且其值设置为 true

MultiTenancy.AllowHostToAccessTenantApi

当设置为 true 时,它允许主机用户访问其他租户的特定数据。默认情况下,该值设置为 true

MultiTenancy.TenantResolvers.HttpGlobalIdHeaderEnabled

当 Orchestrator 收到使用 S2S 访问令牌授权的 API 调用时,true 设置允许 Orchestrator 通过从 API 的请求标头读取租户全局 ID 来标识租户。

<add key="IdentityServer.S2SIntegration.Enabled" value="true" />
<add key="IdentityServer.Integration.S2SOrchestratorApiAudience" value="OrchestratorApiS2SAccess" />
<add key="MultiTenancy.AllowHostToAccessTenantApi" value="true" />
<add key="MultiTenancy.TenantResolvers.HttpGlobalIdHeaderEnabled" value="true" />

机器人配置访问令牌

Orchestrator 充当机器人的令牌生成器。机器人调用 Orchestrator 端点以生成访问令牌。然后,访问令牌将传递给可以调用不同资源的活动,如 AI Fabric。通过 Identity Service 与 Orchestrator 的集成,Identity Server 将接管访问令牌的生成。

Logging Configuration

机器人日志

This is the corresponding UiPath.Orchestrator.dll.config key: <logger name="Robot.*" writeTo="database,robotElasticBuffer" final="true" />. It is used to configure log messages generated by Robots. The following parameters have to be configured:

  • writeTo - 用于写入机器人生成的日志消息的位置。以下值可用:

    • database - 日志发送到 Orchestrator 的 SQL 数据库。这是默认值之一。
    • robotElasticBuffer - 日志将发送到 Elasticsearch。这是第二个默认值。请记住,这需要其他设置。详情见此处
      将日志同时发送到 Orchestrator 的 SQL 数据库和 Elasticsearch 使您能够具有不可否认的日志。删除其中一个值以停止记录到该位置。
  • final - 一个标志,指示在找到记录的消息和记录器名称之间的匹配项时应做些什么。当设置为 true 时,它不会查找其他匹配项。当设置为 false 时,将检查与相同源匹配的其他规则。默认情况下,它设置为 true

Schedules Logs


This is the corresponding UiPath.Orchestrator.dll.config key: <logger name="Quartz.*" minlevel="Info" writeTo="eventLogQuartz" final="true" />. It is used to configure log messages generated by schedules.

📘

备注:

为了确保在带有负载均衡器的 Orchestrator 设置中顺利进行调度,还应该将 quartz.jobStore.clustered 参数设置为 true

Monitoring Logs


这是相应的 UiPath.Orchestrator.dll.config 键:<logger name="Monitoring.*" writeTo="monitoring" minlevel="Warn" final="true" />。它用于配置“监视”页面显示的错误日志。请注意,如果您删除此规则或更改 target,“监视”页面不会显示任何错误日志。

Business Exception Logs


This is the corresponding UiPath.Orchestrator.dll.config key: <logger name="BusinessException.*" minlevel="Info" writeTo="businessExceptionEventLog" final="true" />. It is used to configure the logs for thrown business exceptions. For example validation issues (e.g Invalid username) or business conflicts (e.g. License expired).

Other Logs


This is the corresponding UiPath.Orchestrator.dll.config key: <logger name="*" minlevel="Info" writeTo="eventLog" />. It is used to configure all other logs besides the ones described above, including those generated by Orchestrator.

📘

备注:

如果您每周在 SQL 数据库中累积超过 200 万个机器人日志,则几个月后如果不清理较旧的日志,性能可能会下降。对于如此大量的日志,我们建议使用 Elasticsearch。

Additional Settings

Elasticsearch


The following NLog target must be populated according to your Elasticsearch configuration:

<target xsi:type="ElasticSearch" name="robotElastic" uri="<elasticSearch_url_1>,<elasticSearch_url_2>, <elasticSearch_url_3>" index="${event-properties:item=indexName}-${date:format=yyyy.MM}" documentType="logEvent" includeAllProperties="true" disablePing="true"  layout="${message}" excludedProperties="agentSessionId,tenantId,organizationUnitId,indexName" />
  • uri - Elasticsearch URL;请注意,您必须添加协议和端口,例如 http://elastic_server:9200。您可以将此参数填充为每个节点的 Elasticseach URL,以消除对负载均衡器的需求,例如 uri="http://elastic-node1:9200,http://elastic-node2:9200,http://elastic-node3:9200"
  • excludedProperties - 不希望保存到 Elasticsearch 的数据。
  • index - 日志记录索引的格式,它可以是每个租户唯一的,也可以在所有租户之间共享。详情如下。
  • requireAuth - 设置为 true 以在将 Orchestrator 连接到 Elasticsearch 时启用身份验证。
  • username - 指定用于登录 Elasticsearch 的用户名。如果 requireAuth 设置为 trueOAuthEnabled 设置为 false,则需要对其进行配置。
  • password - 指定用于登录 Elasticsearch 的密码。如果 requireAuth 设置为 trueOAuthEnabled 设置为 false,则需要对其进行配置。
  • OAuthEnabled - set this parameter to true to enable OAuth2 and use a token-based authentication mechanism for the Nlog target for Elasticsearch. When enabling this for the first time, you need to provide your current username and password to generate the initial token. For this parameter to take effect, you need to ensure that Logs.Elasticsearch.OAuthEnabled is also set to true and that you properly configured the Elasticsearch server. For more on this, see X-Pack Authentication.

Index Configuration


  • Individual Index - index="${event-properties:item=indexName}-${date:format=yyyy.MM}"
    A separate index is used for each tenant, meaning that logs specific to one tenant are generated and retrieved based on a unique tenant identifier, in this case, indexName, which defaults to the name of the tenant. This is the default configuration. In this case, logs are generated per month.

  • Shared Index - index="robotlogs-${date:format=yyyy.MM.dd}"
    One index is used for all tenants, meaning that all logs use the same index regardless of the tenant. In this case, logs are generated per day. To use a shared index, you are also required to add the following key in UiPath.Orchestrator.dll.config: <add key="Logs.Elasticsearch.SharedIndex" value="robotlogs" />. Make sure to set it to the same value as for the index parameter in the NLog target.

🚧

重要

Logs generated using an individual index are kept if you shift to a shared index. However, logs generated using a shared index are lost if you shift to an individual one.

Logging Events in the Database


To store system event logs in the database rather than Event Viewer, follow these steps:

  1. Create a new database table, for example:
CREATE TABLE [dbo].[EventLogs](
    [Id] [bigint] IDENTITY(1,1) NOT NULL,
    [Timestamp] [datetime] NOT NULL,
    [Level] [int] NOT NULL,
    [Message] [nvarchar](max) NULL,
    [Exception] [nvarchar](max) NULL)

In the above query, we create a table named EventLogs with the following columns:

  • Id - 保存每个日志的 ID 号,此处从 1 开始,并在添加每个日志时增加值;
  • Timestamp - 保存每个事件的记录时间;
  • Level - 保存每个事件的数字日志级别;
  • Message - 保存每个事件的消息(如果适用);
  • Exception - 保存为每个事件记录的异常(如果适用)。

📘

备注:

您可以任意命名表,并从上述查询中删除任何列,或添加其他列以满足您的需求。

  1. In the UiPath.Orchestrator.dll.config file, add a new NLog target:
<target xsi:type="Database" connectionString="${ui-connection-strings:item=Default}" name="eventLogDatabase" keepConnection="true">
        <commandText>
          INSERT INTO dbo.EventLogs (Timestamp, Level, Message, Exception)
          VALUES (@timestamp, @level, @message, @exception)
        </commandText>
        <parameter name="@timestamp" layout="${date:format=yyyy-MM-dd HH\:mm\:ss.fff}" />
        <parameter name="@level" layout="${event-properties:item=levelOrdinal}" />
        <parameter name="@message" layout="${message}" />
        <parameter name="@exception" layout="${onexception:${exception:format=tostring:maxInnerExceptionLevel=5:innerFormat=tostring}}" />
</target>

Defining a corresponding parameter for the data to be added in each database column, in this example @timestamp, @level, @message, and @exception.

  1. Lastly, associate the newly created target with the NLog logger classification for all Orchestrator messages, from above, by adding:
<logger name="*" minlevel="Info" writeTo="eventLog,eventLogDatabase" />

Enabling NLog Debugging


NLog is an open-source, easily configured, and extensible logging platform for a variety of .NET platforms. With NLog, you can store or pass log data to any number of predefined or custom targets, such as a local file, an event log, email, or database.

Custom NLog targets are not automatically migrated during an upgrade. You need to migrate them to Identity Server and Webhooks services manually. See NLog documentation in Identity Server.

Though there exists some overlap, NLog and Orchestrator have several differentiating logging levels. For NLog, you can select either Trace, Debug, Info, Warn, Error, Fatal, or Off. See Logging Levels for a description of the available levels in Orchestrator.

You can enable debugging in NLog to ensure that it is functioning properly. By default NLog is set to Off, it is enabled by configuring the following section of the UiPath.Orchestrator.dll.config file:

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true" throwExceptions="false" internalLogLevel="Off" internalLogFile="">

The attributes which must be set are:

  • internalLogLevel - 所需的日志记录级别
  • internalLogFile - 日志文件的位置

例如:

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true" throwExceptions="false" internalLogLevel="Debug" internalLogFile="C:\logs.txt">

📘

备注:

The user profile under which Orchestrator is running must have access to the path specified in the internalLogFile attribute.

29 天前更新


⚙ UiPath.Orchestrator.dll.config


建议的编辑仅限用于 API 参考页面

您只能建议对 Markdown 正文内容进行编辑,而不能建议对 API 规范进行编辑。