问题标签 [nsb-servicecontrol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
200 浏览

nservicebus - 特定的 ServiceControl 不清除消息

我们遇到了一个问题,即我们的 NServiceBus ServiceControl 实例没有按照假定的过期策略从它的 RavenDB 中清除消息。

我们在ServiceConfig.exe.Config文件中设置了以下键,该键应在 1 小时后使消息过期,但我仍然可以使用 ServiceInsight 看到昨天的消息,并且 RavenDB 的大小已大大增加。

<add key="ServiceControl/HoursToKeepMessagesBeforeExpiring" value="1" />

在我们的系统投入生产之前,我们需要自动清除消息,因此我们非常感谢您提供任何帮助。

0 投票
1 回答
1251 浏览

nservicebus - NServiceBus - 服务脉冲 - 无法连接到 ServiceControl (http://localhost:33333/api/)

我正在使用 NServiceBus 5。我的消息发送/接收正确,但我在使用 Service Pulse 时遇到问题。我已经使用默认端点名称配置了审核。

当我导航到 Service Pulse ( http://localhost:9090/ ) 时,我收到以下错误。

Can't connect to ServiceControl (http://localhost:33333/api/)

查看我的服务,我发现它Particular ServiceControl没有启动。当我尝试启动它时,它会启动并立即停止。

我在以下位置检查了日志:

%LOCALAPPDATA%\Particular\ServiceControl\logs

%WINDIR%\System32\config\systemprofile\AppData\Local\Particular\ServiceControl\logs

但除了昨天关于丢失队列的错误(见下文) - 什么都没有。当我现在尝试重新启动服务时,我没有收到任何错误。

有人知道我应该怎么做才能让 Service Pulse 正常工作吗?

我昨天删除了所有私人队列,以为它们会自动重新创建。现在我意识到只有端点被重新创建,我已经手动重新创建了一些。

现在连同我的端点队列,我有:

- - 编辑 - -

最终只是卸载并重新安装 - 解决了问题。

ServiceControl --uninstall

ServiceControl --install

0 投票
2 回答
110 浏览

nservicebus - 如何调试 NServiceBus ServiceControl 实例

我已经安装了 ServiceControl 管理实用程序,并且正在尝试添加一个实例。

我想在服务帐户下运行实例,因为我们使用 SQLServer 传输,但是在安装页面时出现错误“密码无效”。

该帐户在同一台​​计算机上托管另一个 Windows 服务。

我尝试过其他管理员帐户并通过 UI 和 Powershell 脚本创建实例。

我 200% 确定密码是正确的。

无论如何我可以增加日志记录以确定失败的原因吗?

奇怪的是,我可以在初始安装下更改服务帐户并且它可以工作。我最终能够使用 SQL 登录来运行服务,但我更喜欢使用集成安全性,而不是将用户名和密码保留在连接字符串中。

0 投票
1 回答
127 浏览

nservicebus - 应该处理哪些 ServiceControl.Contracts 消息?

我正在尝试确保 3rd 方依赖项正在运行,并基于Monitoring 3rd party Sample Application构建了一个服务来执行此操作,它发出 ServiceControl CheckResult 消息。

这很好用;当我停止/启动本地和远程 Windows 服务、数据库、通量电容器等时,ServicePulse 会提醒我。

我现在想构建一个 Windows 服务/nServiceBus 端点,例如 ServicePulse,但具有可以尝试恢复、发送电子邮件等的逻辑。我真的不想将此代码放入 3rdParty 监视器中。

我遵循了servicecontrol/external-integrationsservicecontrol/contracts教程,并创建了我的MendStuffOrEmail端点——但它不起作用;它不接收任何消息。

我正要问“我做错了什么?”,但我想我知道;我正在使用 IHandleMessages<ServiceControl.Contracts.MessageFailed> 用于失败的消息。

我需要收听“CheckResult”类型的消息——但它们是什么?我查看了 ServiceControl 和 ServicePulse 代码,但无法确定发送/接收的内容。我怎样才能发现这一点,或者其他人实际上已经这样做并且已经知道了?

更新
经过更广泛的翻阅后,我还订阅了 CustomCheckFailed 和 CustomCheckSucceeded 消息。我为它们实现了 IHandle 接口,但我仍然没有收到任何消息。日志显示自动订阅者已订阅它们。接下来我应该检查什么?

0 投票
0 回答
100 浏览

nservicebus - 将 SqlTransport 与多个数据库一起使用时无法启动 ServiceControl

尝试启动 ServiceControl 时出现以下错误:

致命|NServiceBus|启动任务未能完成。System.AggregateException:发生一个或多个错误。---> System.AggregateException:发生一个或多个错误。---> System.Exception:传输在本机 SQL Server 事务模式下运行,没有发件箱,但配置使用多数据库发送(http://docs.particular.net/nservicebus/sqlserver/multiple-databases)。多数据库发送只能在环境事务模式或启用发件箱时使用。请检查您的端点配置。

我将 SqlTransport 与多个数据库一起使用。我的 ServiceControl.exe.config 看起来像这样(省略了连接字符串)

我关注了这篇文章http://docs.particular.net/nservicebus/sqlserver/multiple-databases,它描述了我所做的设置配置,但我不清楚我应该怎么做才能解决这个问题。

0 投票
1 回答
180 浏览

azure - NServiceBus MessageForwardingInCaseOfFaultConfig 未按预期工作

我已经设置 NServiceBus 将失败的消息转发到由 ServiceControl 监控的错误队列。

这是我的配置:

当我发送一条无法处理的消息时,它会被发送到 DLQ。但是,我在 error 或 error.log 队列中找不到此消息的副本。当我在 AMS 中查看消息详细信息时,Delivery Counter 设置为 7,但是当我查看 NSB 日志时,我只能找到一次异常。另外,我有点困惑为什么这个异常被记录为“INFO”。这使得检测这种方式变得更加困难,但这是一个单独的问题。

注意:我在 Azure 服务总线传输上运行。

有人知道我在这里缺少什么吗?提前致谢!

0 投票
1 回答
255 浏览

azure - 调试 NServiceBus ServiceControl Heartbeat 插件

我有一个在 Azure 辅助角色上运行的 NServiceBus 端点。我安装了包 ServiceControl.Plugin.Nsb5.Heartbeat。当我直接从 VS 部署到云服务时,我的端点显示在 ServicePulse 中,并且我得到了预期的心跳。

当我完成我们的自动化部署过程时,servicepulse 没有检测到端点,并且我没有收到任何心跳。(即使您没有安装心跳插件,ServicePulse 也会检测到端点并告诉您该端点没有安装心跳插件)。

当我通过 RD 登录时,我可以在 approot 中看到心跳程序集。我的配置对于两种情况都是相同的,但我将在此处添加以供参考:

在我的配置应用程序设置中:

我的其余配置:

我的 ServiceControl 实例在我的本地计算机上运行并监视正确的服务总线。错误队列名称设置为error,就像在配置中一样,错误转发队列名称设置为error.log。

当 workerrole 启动并启动 NSB 时,我可以在日志中找到它(顺便说一句,这与我在发送心跳的 workerrole 中找到的完全相同):

我完全不知道为什么相同的代码表现不同。它是相同的代码、相同的配置、相同的设置,只是部署方式不同。在比较已部署的程序集时,我无法检测到差异。心跳组件就在那里,看起来 NSB 也在接收它。我只是没有收到来自该特定端点的任何心跳。

知道我可能会错过什么吗?或者我可以尝试解决这个问题?

提前致谢!

0 投票
1 回答
207 浏览

nservicebus - NServiceBus 6.0 是否已经支持 ServiceInsights

我想将我的 NServiceBus 6.0 应用程序“连接”到 ServiceInsight。因此,我使用 NuGet 包管理器将 Nsb6.Heartbeat、Nsb6.CustomChecks 和 Nsb6.SagaAudit dll 安装到我的解决方案中。在过去,这是足够的配置,我的消息和传奇细节出现在 ServiceInsight 中。但是现在使用版本 6(...仍处于测试阶段),这不再起作用,并且我收到以下错误消息:

2016-06-06 13:17:34.385 WARN ServiceControl.Plugin.Nsb6.Heartbeat.Heartbeats 无法将心跳发送到 ServiceControl:System.ArgumentNullException:Der Wert darf nicht NULL sein。参数名称:destination bei NServiceBus.Guard.AgainstNullAndEmpty(String argumentName, String value) in C:\Build\src\NServiceBus.Core\Utils\Guard.cs:Zeile 36.
bei NServiceBus.Routing.UnicastAddressTag..ctor(String destination)在 C:\Build\src\NServiceBus.Core\Routing\UnicastAddressTag.cs​​:Zeile 15。
bei ServiceControl.Plugin.ServiceControlBackend.d__1.MoveNext() in C:\Build\src\ServiceControl.Plugin.Nsb6.Heartbeat\ServiceControlBackend.cs:Zeile 54. --- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 ServiceControl.Plugin.Nsb6.Heartbeat.Heartbeats.HeartbeatStartup.d__7.MoveNext()在 C:\Build\src\ServiceControl.Plugin.Nsb6.Heartbeat\Heartbeats.cs:Zeile 148。

抱歉,该消息包含德语术语 - 但您可能会了解例外情况。我是否必须提供有关目的地的一些额外信息?

我正在使用的版本:

  • NServiceBus 6.0.0-beta3

  • NServiceBus.Host 7.0.0-beta2

  • ServiceControl.Plugin.Nsb6.Heartbeat 1.0.0-beta2

  • 服务控制 1.16.0

  • 服务洞察 1.5.6

这是我的端点配置:

0 投票
1 回答
367 浏览

nsb-servicecontrol - 特别 - ServiceControl 总是停止

我最近在我的 QA 服务器上安装了 Service Control(V1.20.0),我使用 ServiceControl Management Utility 安装它,我没有更改默认值,我没有移动数据库位置。当我处于维护模式时,我能够浏览到 RavenDB。创建了特定的端点,我也有未过期的许可证。

这是我在 db 日志文件中找到的

Microsoft.Isam.Esent.Interop.EsentInvalidInstanceException:C:\Work\ravendb\SharedLibs\Sources\managedesent-61618\EsentInterop\Api.cs 中 Microsoft.Isam.Esent.Interop.Api.Check(Int32 err) 的实例句柄无效:C:\Work\ravendb\SharedLibs\Sources\managedesent-61618\EsentInterop\Api.cs 中 Microsoft.Isam.Esent.Interop.Api.JetBeginSession(JET_INSTANCE 实例,JET_SESID& sesid,字符串用户名,字符串密码)的第 2739 行: Raven.Storage.Esent.StorageActions.DocumentStorageActions..ctor 的第 823 行(JET_INSTANCE 实例,字符串数据库,TableColumnsCache tableColumnsCache,OrderedPartCollection`1 documentCodecs,IUuidGenerator uuidGenerator,IDocumentCacher 缓存器,EsentTransactionContext transactionContext,TransactionalStorage transactionalStorage)在 c:\Builds\RavenDB-稳定 2.5\Raven。数据库\Storage\Esent\StorageActions\General.cs:第 76 行

0 投票
1 回答
47 浏览

nservicebus - 负载均衡环境下安装nservicebus Servicecontrol

我将在两台机器设置中安装 NServiceBus ServiceControl(通过 F5 框进行负载平衡)。知道如果两个实例共享相同的 RavenDatabase 位置,它会工作吗?