问题标签 [nservicebus4]
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.
c# - NServiceBus.Host.exe 超时和日志记录配置 - 可通过 NServiceBusHost.exe.config 进行配置
我对 NServiceBusHost.exe 有疑问。
目前,我正在将 NServiceBusHost.exe 作为 Windows 服务运行,并且收到超时异常,如下所示:
Microsoft 服务跟踪查看器输出:
我正在考虑避免发生此超时异常,应该为 HTTP 运行时延长超时。
有谁知道我认为 .NET 中的 HTTPRuntime 配置执行超时(.NET 4.0 中的默认值为 1:10 分钟)适用于 NServiceBusHost.exe 是否正确?
此外,我相信 NServiceBusHost.exe 是建立在 topshelf 之上的。我认为可以应用 log4net 配置来记录 NServiceBusHost.exe 的任何问题是否正确?
提前致谢。
nservicebus4 - 在 SLR 重试期间,我在哪里可以找到 NServiceBus 4.1 消息?
我们目前正在实施一个新系统。现在发生了,我的消息内容错误并被连接系统拒绝(我们通过 REST 服务传输数据)。一旦消息在错误队列中,我就可以对其进行编辑并重新排队。但是,虽然 NServiceBus 正在尝试重新发送它(当然每次都会失败),但我似乎无法找到下次更正它的消息。知道 SLR 期间消息“停放”在哪里吗?
nservicebus - 从命令处理程序发布 NServiceBus 事件
我正在尝试为 NServiceBus 解决方案实现一个简单的 POC。所以我实现了 3 个端点,我们称它们为 A、B 和 C。A 自托管在控制台应用程序中,B 和 C 是 NSB 主机。在 A 中,我发送一个命令 DoFoo,在 B 中,我正在处理 DoFoo,在处理程序中,我发布了几个 BarOccurred 类型的事件,如下所示:
在 C 中,我通过写入发生 Bar 的控制台来订阅和处理它。
我希望每次 B 发布消息时(即每秒)都会看到在 C 中处理的消息。但是我看到的行为是,只有在命令处理程序退出后(在 5 次迭代后),C 才会收到所有 5 条消息。
这是默认配置的预期行为吗?为了让消息在发布后立即发送和处理,我需要声明什么吗?
nservicebus - NServiceBus 4 和 DTC
我正在考虑将我们的 NServiceBus 3.3.3 系统升级到版本 4。
我阅读了一些似乎表明版本 4 可以在没有 DTC 的情况下工作的帖子。这是真的?
基本上,这就是我正在考虑做的事情:
- 更改我的处理程序以能够处理重复的消息
- 升级到 NServiceBus 版本 4
- 在我的数据库上关闭 DTC
根据我的阅读,我应该能够做到这一点并且不会丢失任何消息。(我在一家医疗公司工作,丢失消息意味着我们丢失了患者的数据(非常非常糟糕)。)
唯一需要注意的另一件事是,我的系统与分销商一起运行,然后将工作分配给几个工人。通过 put 的消息很大,(我希望删除 DTC 会提高吞吐量)。
作为旁注,如果我从 MSMQ 切换到 RabbitMQ,这会有什么不同吗?
c# - 尝试在 Handler(本地 Azure 工作者)中进行 Bus.SendLocal 时,该操作对事务的状态无效
我有下一个代码:
错误信息:操作对于事务的状态无效。
堆栈跟踪:
*在 System.Transactions.TransactionState.EnlistVolatile(InternalTransaction tx, IEnlistmentNotification enlistmentNotification, EnlistmentOptions enlistmentOptions, Transaction atomicTransaction) 在 System.Transactions.Transaction.EnlistVolatile(IEnlistmentNotification enlistmentNotification, EnlistmentOptions enlistmentOptions) 在 NServiceBus.Azure.Transports.WindowsAzureStorageQueues.AzureMessageQueueSender.Send( TransportMessage 消息,地址地址)在 c:\BuildAgent\work\ba77a0c29cee2af1\src\NServiceBus.Azure.Transports.WindowsAzureStorageQueues\AzureMessageQueueSender.cs:NServiceBus.Unicast.UnicastBus.SendMessage 的第 51 行(列表1 addresses, String correlationId, MessageIntentEnum messageIntent, Object[] messages) in :line 0
at NServiceBus.Unicast.UnicastBus.SendMessage(Address address, String correlationId, MessageIntentEnum messageIntent, Object[] messages) in :line 0
at NServiceBus.Unicast.UnicastBus.Send(Address address, Object[] messages) in :line 0
at NServiceBus.Unicast.UnicastBus.SendLocal(Object[] messages) in :line 0
at NServiceBus.Unicast.UnicastBus.SendLocal(Object message) in :line 0
at Amira.Merger.WorkerRole.Handlers.ProcessTPGFilesHandler.SaveToDataBase(TourML tourMLObj) in d:\AmiraProject\SourcesOfAmira-Tour\Amira\Amira.Merger.WorkerRole\Handlers\ProcessTPGFilesHandler.cs:line 161
at Amira.Merger.WorkerRole.Handlers.ProcessTPGFilesHandler.DeserializeAndSaveData() in d:\AmiraProject\SourcesOfAmira-Tour\Amira\Amira.Merger.WorkerRole\Handlers\ProcessTPGFilesHandler.cs:line 139
at Amira.Merger.WorkerRole.Handlers.ProcessTPGFilesHandler.Handle(StartProcessTPGFiles message) in d:\AmiraProject\SourcesOfAmira-Tour\Amira\Amira.Merger.WorkerRole\Handlers\ProcessTPGFilesHandler.cs:line 122
at lambda_method(Closure , Object , Object )
at NServiceBus.Unicast.HandlerInvocationCache.Invoke(Object handler, Object message, Dictionary
2 字典)在:NServiceBus.Unicast.HandlerInvocationCache.InvokeHandle(对象处理程序,对象消息)的第 0 行中:NServiceBus.Pipeline.Behaviors.LoadedMessageHandlers.b_ 的第 0 行中2(对象 handlerInstance,对象消息)在:NServiceBus 的第 0 行.Pipeline.Behaviors.InvokeHandlersBehavior.DispatchMessageToHandlersBasedOnType(IBuilder builder, LogicalMessage toHandle, LoadedMessageHandlers loadedHandlers, BehaviorContext context) in :line 0 at NServiceBus.Pipeline.Behaviors.InvokeHandlersBehavior.Invoke(BehaviorContext context, Action next) in :line 0 at NServiceBus.Pipeline .BehaviorChain.InvokeNext(BehaviorContext context) in :line 0 at NServiceBus.Pipeline.BehaviorChain.<>c _DisplayClass1.b_0() in :line 0 at NServiceBus.Sagas.SagaPersistenceBehavior.Invoke(BehaviorContext context, Action next) in :line 0 at NServiceBus.Pipeline.BehaviorChain.InvokeNext(BehaviorContext context) in :line 0 at NServiceBus.Pipeline.BehaviorChain。< >c _DisplayClass1.b_ 0() in :line 0 at NServiceBus.Pipeline.Behaviors.LoadHandlersBehavior.Invoke(BehaviorContext context, Action next) in :line 0 at NServiceBus.Pipeline.BehaviorChain.InvokeNext(BehaviorContext context) in :line 0 at NServiceBus.Pipeline.BehaviorChain.<>c _DisplayClass1.b_0() in :line 0 at NServiceBus.Pipeline.Behaviors.CallbackInvocationBehavior.Invoke(BehaviorContext context, Action next) in :line 0 at NServiceBus.Pipeline.BehaviorChain.InvokeNext(BehaviorContext context) in :line 0 at NServiceBus.Pipeline.BehaviorChain .<>c _DisplayClass1.b_ 0() in :line 0 at NServiceBus.Pipeline.Behaviors.ApplyIncomingMessageMutatorsBehavior.Invoke(BehaviorContext context, Action next) in :line 0 at NServiceBus.Pipeline.BehaviorChain.InvokeNext(BehaviorContext context) in :line 0 在 NServiceBus.Pipeline.BehaviorChain.<>c _DisplayClass1.b_0() in :line 0 at NServiceBus.Pipeline.Behaviors.ExtractLogicalMessagesBehavior.Invoke(BehaviorContext context, Action next) in :line 0 at NServiceBus.Pipeline.BehaviorChain.InvokeNext(BehaviorContext context) in :line 0 at NServiceBus.Pipeline.BehaviorChain .<>c _DisplayClass1.b_ 0() in :line 0 at NServiceBus.Pipeline.Behaviors.RaiseMessageReceivedBehavior.Invoke(BehaviorContext context, Action next) in :line 0 at NServiceBus.Pipeline.BehaviorChain.InvokeNext(BehaviorContext context) in :line 0 在 NServiceBus.Pipeline.BehaviorChain.<>c _DisplayClass1.b_0() in :line 0 at NServiceBus.Pipeline.Behaviors.ApplyIncomingTransportMessageMutatorsBehavior.Invoke(BehaviorContext context, Action next) in :line 0 at NServiceBus.Pipeline.BehaviorChain.InvokeNext(BehaviorContext context) in :line 0 at NServiceBus.Pipeline.BehaviorChain .<>c _DisplayClass1.b__0() in :line 0 at NServiceBus.UnitOfWork.UnitOfWorkBehavior.Invoke(BehaviorContext context, Action next) in :line 0*
有人可以帮我弄这个吗?谢谢
azure - 在处理程序中创建具有不同传输协议的 nservicebus iBus 实例。MSMQ 到 Azure
我们有一个从 MSMQ 运行的现有服务总线,它消耗一个需要将命令发布到 Azure 上运行的总线的事件。
我们将 azure 暴露给外部世界,并为内部消息保留 msmq。
我尝试新建一个仅发送总线的实例来完成此操作,但没有运气,将不胜感激一些指针/代码示例。
编辑
我还没有找到这个问题的答案,到目前为止,我的解决方法是设置一个 web api,它托管运行 Azure 作为传输协议的 nservicebus。所以我的 MSMQ 消费者将调用 api,该 api 将向我们的 Azure 总线发送命令。不理想……一点也不,但这是我能想到的。
编辑2
创建了与网关配置略有不同但相关的问题: Nservicebus msmq to azure queue using gateway
nservicebus - 自动订阅不起作用
尝试从 nservicebus 开始。我的意图是至少获取端点尝试订阅的日志消息。所以我为像这样的消息创建了消息处理程序
并且合约 OrderAccepted 定义为
根据 NServiceBus 文档,修改订阅者 .config 文件就足够了
但是,当我启动订阅者主机NServiceBus.Host.exe
时,我没有收到它正在尝试订阅的日志消息,busstop.backend 队列中也没有订阅请求消息。
谢谢。
nservicebus - 安装 NServiceBus 性能计数器失败
我正在使用 Powershell cmdlet 安装 NSB 基础架构。我尝试了一些测试虚拟机,它似乎工作正常。但是,在生产中,在 Windows 2008 R2 机器上出现以下错误
我试图做 lodctr /R 但它没有帮助。
我还发现可以通过这个命令删除类别
[Diagnostics.PerformanceCounterCategory]::Delete("NServiceBus")
当我转到 Powershell 窗口时,它确实有效,发出此命令并执行 Install-NServiceBusPerformanceCounters,然后它就有效了。如果我重复发出 Install-NServiceBusPerformanceCounters,它表示性能计数器已经存在,所以一切都很好。NSB.Host.exe 也可以正常启动。
但是,当我运行我的 msi 时,从调用 Powershell 脚本的位置返回错误。