问题标签 [nservicebus3]

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 回答
271 浏览

c# - 是否有一种在 Nservicebus 3 中定义错误队列的流畅方式

我想知道是否可以使用流畅的 (Configure.With()) 语法为我的应用程序定义错误队列的位置?

请注意,这已在 nservicebus3 中更改为通过 MessageForwardingInCaseOfFaultConfig 进行配置

0 投票
1 回答
404 浏览

c# - NServicebus 3中错误设置的MaxRetries在哪里

使用 NServiceBus 3,错误队列的配置位置已从

MsmqTransportConfig 到 MessageForwardingInCaseOfFaultConfig,但是我不确定 MsmqTransportConfig 上指定的其他属性(例如 MaxRetries)应该去哪里。

请参阅http://docs.particular.net/nservicebus/msmq/transportconfig

0 投票
1 回答
786 浏览

nservicebus - 类型 ... 未在序列化程序中注册(非 Web 应用程序)

我正在尝试使用 NServiceBus 3.0 发送命令。当我发送一个实现 ICommand 的命令时,一切正常。但是,如果我使用约定,它就不起作用。来源如下。有人可以告诉我我做错了什么吗?

该命令如下所示:

0 投票
0 回答
210 浏览

neventstore - 当使用超过 1 个线程时,带有 NServiceBus 的 EventStore 会导致死锁

我目前正在开发一个使用 EventStore、CommonDomain 和 NServiceBus 的项目,当我将 NumberOfWorkerThreads 设置为 1 时,我们所有的服务(nservicebus - 我们有 6 个,每个都有自己的事件存储)运行完美,但是当我将 NumberOfWorkerThreads 设置为不止一个,我开始看到大量死锁,我的意思是每分钟至少 50 个。所有的死锁都在 Commits 表上。根据我的发现,看起来我正在多个线程中更新相同的聚合,这很容易在每个说的目录和导入过程中发生,并且我在一个线程中更新数量,同时在另一个线程中更新价格线程,所以两个线程都试图更新同一个聚合。

有没有其他人遇到过这个问题,你是如何解决的?

0 投票
0 回答
880 浏览

nservicebus - NServiceBus IHandleTimeouts 抛出 SagaNotFoundHandlers

我正在尝试在我的 Saga 中使用 NServiceBus 3.0 ITimeoutState 和 IHandleTimeouts 功能。我有以下代码片段。以下代码在 NServiceBus.3.0.0-rc5 上运行良好,没有任何问题。但是,当我使用任何版本 > 3.0.0 更新 DLL 时,传奇超时没有按预期工作,它会引发以下警告!

2012-04-05 09:15:26,267 [Worker.5] INFO NServiceBus.Sagas.Impl.SagaDispatcherFactory [(null)] <(null)> - 找不到消息类型 SomeNameSpace.MySagaTimeout 的 saga,id 为 9496c29e- f745-4ada-8212-99e47324922b\20920。将调用SagaNotFoundHandlers

请帮我解决这个问题。

超时消息:

传奇密码:

配置:

注意:我正在使用自己的 saga 持久化器,并且我有 IFindSagas<MySagaState>.Using<MySagaTimeout>的实现

0 投票
2 回答
478 浏览

azure - Azure 中的 NServiceBus 错误队列

我正在尝试在 Azure 中设置 NServiceBus。在本地开发期间,我使用存储队列,而在云中部署时,我使用 Azure 服务总线。由于某种原因,当发生错误时,消息不会移动到错误队列中。事实上,甚至没有创建错误队列。

在我的 Web.config 文件中,我有以下配置:

配置 NServiceBus 时,我调用:

当消息失败时,日志中的最后一个错误总是

对此有什么想法吗?消息传递似乎有效,只是错误处理不起作用。

0 投票
1 回答
665 浏览

nhibernate - NServiceBus 重试消息,即使没有异常

尽管处理程序中没有引发异常,但 NServiceBus 重发消息 X 次时遇到了一个奇怪的问题。有一些关于 NHibernate 会话和 NSB 环境事务的信息。由于没有引发错误,我不能 100% 确定问题所在,因此无法真正决定要做什么。

我将 NSB 配置为 Castle Windsor,如下所示:

像这样UnitOfWorkInstaller注册工作单元(NHibernate 会话):

因此,每次消息到达时,所有存储库都使用相同的工作单元。我读到手动回滚当前事务会导致错误(我真的不知道为什么),而且我还知道 NSB 为每个传输消息创建一个子容器,并且这个子容器在消息处理后被释放。问题是当子容器被处理时,工作单元是这样处理的:

我的处理程序的结构如下:(_unitOfWork 作为构造函数依赖项传递)

我发现如果我不提交工作单元(刷新会话并提交事务),我会收到一条错误消息,提示消息已重试超过最大重试计数 bla bla bla ...

所以它似乎与 NHibernate 会话以及它的创建和处理方式有关,但由于它是在工作单元中创建的,所以我不能真正使用会话工厂。我读到我可以使用 IMessageModule 来创建和处理会话,但是我不知道这是否是正确的方法,因为我首先不明白是什么导致了错误。

回顾一下:

  • 我正在使用一个范围内的工作单元,以便所有使用它的处理程序依赖项将共享相同的实例(感谢子容器,顺便说一句:我已经将工作单元设置为瞬态,认为子容器将处理所有瞬态对象作为该容器中的单例,但我看到工作单元没有共享,所以这就是为什么它设置为范围)

  • 我将我的处理程序包装在一个using(_unitOfWork) { }语句中,以在每次处理后处理工作单元。

  • 当工作单元被释放时,NHibernate 会话也被释放

  • 如果我没有显式调用Commit_unitOfWork则消息重试超出最大重试次数,然后引发错误。

是什么导致了这种行为?IMessageModule 是这个问题的答案吗?

0 投票
1 回答
765 浏览

nservicebus - NServiceBus 稍后处理消息

我正在使用 NSerivceBus 构建一个系统,它应该只在特定的时间范围内将消息发送到远程处理程序。到目前为止,我设法将所有消息放在一个处理队列上,并从那里检查远程处理程序的可用性,如果处理程序不可用,我不会将消息发送到边界之外。为此,我正在使用

但NSB会在之后继续尝试。它不像另一个监听器会在几分钟内启动并运行,但它可能有几个小时的中断窗口,所以这并不完全有效。

想知道是否有办法让总线稍后重试消息,或者不要继续重试并在下次重试之前等待一段时间。我将使用 Sagas,只是简单的命令/处理程序消息。

0 投票
1 回答
362 浏览

c# - 从 NServiceBus 主机发送消息

我们有一个审核消息处理程序,如果在此处理程序中引发任何异常,我们希望它向 LogMessageInputQueue 发送一条日志消息,该消息将由另一个消息处理程序处理。

是否可以从 NServiceBus 主机进程中发送新消息?AuditMessageHandler 在其构造函数中接受处理程序 IBus,但在调用时

没有抛出异常,但消息没有出现在 LogMessageInputQueue 上,似乎只是消失了......

所有的处理程序和队列都在同一台机器上。

0 投票
1 回答
336 浏览

.net - 带有 Castle Windsor 子容器的快照

在阅读了有关 NServiceBus 3 对子容器支持的页面 ( http://docs.particular.net/nservicebus/containers/child-containers ) 之后,我期待在 Castle Windsor 中,父容器中的瞬态组件的行为类似于子容器。然而,这些父组件与子容器的依赖关系每次都会被实例化。

有没有办法在温莎城堡中实现父容器快照的这种行为?换句话说,容器中组件的瞬态,如果从子容器解析,则为单例。