问题标签 [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 投票
2 回答
642 浏览

nservicebus - 托管 IIS(Asp.net 和 WCF)时 NServicebus 的 CPU 使用率高吗?

我们注意到,将 NServicebus 添加到我们的 ASP.net MVC 应用程序后,CPU 使用率从 5% 上升到 50%。这是在没有任何负载的服务器上。我们注意到托管 WCF 应用程序的另一台服务器上的相同行为。在尝试了不同的事情之后,我们发现如果我们将总线配置为仅发送,CPU 使用率会下降到 5%。有谁知道为什么当总线未配置为仅发送时 CPU 使用率如此之高?

0 投票
1 回答
497 浏览

c# - NServiceBus RavenDB Saga 持久化器忽略 JsonIgnoreAttribute

我将对象存储在我的 saga 数据中,这些对象具有在序列化和反序列化期间应忽略的属性。我尝试使用 [NonSerialized] 和 [JsonIgnore] 标记这些属性(并使用 [DataContract] 注释类而不是使这些属性 [DataMember] ...),但似乎没有任何效果。无论我做什么,当 NServiceBus 调用 Json.NET 来保存传奇数据时,所有属性都会被序列化。我还尝试为有问题的对象实现一个自定义 JsonConverter,这也被忽略了(是的,我正在用 [JsonConverter(typeof(MyConverter))] 注释对象类型...)

有没有办法让传奇持久性忽略传奇数据中包含的对象中的属性?作为参考,我使用的是 NServiceBus 3.2.7、Json.NET 4.5.7 和 RavenDB build 960。总线配置为使用 RavenDB 持久性和 saga 持久性。

0 投票
1 回答
102 浏览

nservicebus - 无法获得为 NServiceBus 3.2.7 设置部署队列的权限

因此,使用 GO 管道部署项目的升级,包括最新版本的 NServiceBus(3.2.7),我似乎遇到了创建队列的某种权限问题,一旦手动创建,似乎服务仍然不会从中读取。

这是我的端点配置

看来我说这是服务的一些问题。我对 NServiceBus 很陌生,所以我不确定它是如何部署为服务而不是运行 host.exe 的。

此外,当我在本地运行它时,我可以指向开发环境中的队列并从中读取。

0 投票
1 回答
567 浏览

asp.net-web-api - NServicebus 和 ASP.NET Web API - MSMQ 事务问题?

我有一个 ASP.NET Web API,它在 HTTP PUT 方法中接受 DTO,执行一些验证,然后执行 Bus.Send()sa 命令。

目前,所有消息都在配置的 MSMQ 错误队列中结束。

这是一些伪代码作为我正在使用的模型的概述......

经过调查,我在 Web API 操作方法的最后一个大括号/大括号上设置了一个断点,并查看了计算机管理中的 MSMQ,可以看到消息已进入正确的队列并且看起来格式正确。

当我越过最后一个括号时,消息立即移入错误队列。断点后似乎没有其他代码运行(自定义过滤器/属性等)

我推测这与队列事务有关,并且某些原因导致该事务中止,但我无法弄清楚它是什么..

任何帮助都会很棒,谢谢,

0 投票
0 回答
214 浏览

nservicebus3 - Nservicebus - 工作节点无法创建动态队列

我们之前的配置声明 Nservicebus 不创建队列。我们从 fluent 中删除了该配置以允许创建队列。

通过每个工作节点唯一的动态队列创建,它不会为工作节点创建队列。

它抛出以下错误,

System.InvalidOperationException:输入队列有问题:FormatName:DIRECT=OS:machinename\private$\nodename.2b75b263-4511-43d8-83b9-e1de5710fcdb。有关详细信息,请参阅封闭的异常。---> System.Messaging.MessageQueueException: 队列不存在或您没有足够的权限来执行操作。
在 System.Messaging.MessageQueue.MQCacheableInfo.get_Transactional()
在 System.Messaging.MessageQueue.get_Transactional()
在 NServiceBus.Unicast.Queuing.Msmq.MsmqMessageReceiver.QueueIsTransactional() 在 c:\TeamCity\buildAgent\work\nsb.master_2\ src\impl\unicast\queuing\NServiceBus.Unicast.Queuing.Msmq\MsmqMess ageReceiver.cs:line 124
--- 内部异常堆栈跟踪结束 ---
在 C:\TeamCity\buildAgent\work\nsb.master_2\src\impl\unicast\queuing\NServiceBus.Unicast.Queuing.Msmq\MsmqMess ageReceiver.cs:line 中的 NServiceBus.Unicast.Queuing.Msmq.MsmqMessageReceiver.QueueIsTransactional() 130
在 C:\TeamCity\buildAgent\work\nsb.master_2\src\impl\unicast\queuing\NServiceBus.Unicast.Queuing.Msmq\ 中的 NServiceBus.Unicast.Queuing.Msmq.MsmqMessageReceiver.Init(地址地址,布尔事务) MsmqMessageReceiver.cs:
C:\TeamCity\buildAgent\work\nsb.master_2\src\impl\un icast 中 NServiceBus.Unicast.Transport.Transactional.TransactionalTransport.NServiceBus.Unicast.Transport.ITransport.Start(地址地址)的第 34 行\transport\NServiceBus.Unicast.Transport.Transactional\TransactionalTransport.cs:第 180 行
在 C:\TeamCity\buildAgent\work\nsb.master_2\src\unicast\NServiceBus.Unicast\UnicastBus.cs:line 828 中的 NServiceBus.Unicast.UnicastBus.NServiceBus.IStartableBus.Start(Action startupAction)

0 投票
2 回答
3240 浏览

msmq - 使用 NServiceBus 处理消息时 MSMQ 消耗大量内存

我有两个使用 NserviceBus 的 Windows 服务。一个将消息写入队列,另一个从队列中读取并进行一些处理。所有队列都是事务性的,NserviceBus 端点配置如下。

问题是当大量消息 (170,000+) 排队时,MSMQ 服务 (mqsvc.exe) 会占用相当多的内存 (1.5 - 2.0 GB),并且至少 5 - 6 内存没有被释放小时。平均消息大小约为 5 - 10 KB。似乎您排队的消息越多,它使用的内存就越多。基于 NServiceBus 的 Windows 服务内存消耗在完全可以接受的范围内 (50 - 100 MB),并且无论它们处理多少消息都不会增加。

关于为什么 MSMQ 会使用这么多内存并且需要很长时间才能释放它的任何想法?多谢了。

0 投票
1 回答
769 浏览

nservicebus - 从 Web 应用程序使用 Bus.Send(不是 Publish)(NServiceBus v3.2.0.0)

我们有一个发布许多事件的 asp.net mvc3 应用程序。最近,有人指出我们应该发送消息而不是从 Web 应用程序发布事件,并引用了这篇非常有道理的优秀博客文章。但是,我想确认帖子中提出的观点对于 NServiceBus v3.x 仍然有效?

谢谢!

0 投票
0 回答
173 浏览

visual-studio - NServiceBus“没有可用的源”

我正在开发一个使用 NServiceBus 的 web api 项目。每次我启动我的 NserviceBus 主机时,调试过程都会中断,我会收到“无可用源”消息,我无法弄清楚发生了什么。我可以从我的 api 项目发送消息,主机将通过简单地继续跳过错误来接收它,但每次我启动主机时都会收到该消息。

我的 nservicebus 配置:

我的 web.config:

app.config:

我的处理程序实现了 IHandleMessages,当我继续通过错误消息时,它似乎处理了消息,并且端点被配置为服务器。当 NServiceBus 的控制台窗口出现时,如果队列中已有消息,我会收到错误消息,告诉我端点未配置为发布者。

我正在使用 NServiceBus 3.0.0。

感谢您的任何意见。

0 投票
1 回答
631 浏览

wcf - 尝试在 WCF 服务中启动 NServiceBus 实例时出现空传输

我正在使用 NServiceBus 3.3.3。我使用 Ninject 作为我的容器,并通过绑定到以下方法来初始化模块中的总线:

相同的代码在不同的(MVC4)项目中工作正常,但在我的 WCF WAS 服务中,我似乎总是为 null的transport成员,因此第 824 行失败。UnicastBustransport.MaxThroughputPerSecond = license.MaxThroughputPerSecond;

你调用的对象是空的。在 NServiceBus.Unicast.UnicastBus.NServiceBus.IStartableBus.Start(Action startupAction) in c:\TeamCity\buildAgent\work\nsb.master_2\src\unicast\NServiceBus.Unicast\UnicastBus.cs:Access.Cloud.WebService 的第 824 行.Modules.NServiceBusModule.CreateBus() in l:\Projects\aCloud\InsightIntegration\Access.Cloud.WebService\Modules\NServiceBusModule.cs: 第 47 行 Access.Cloud.WebService.Modules.NServiceBusModule.b__0(IContext context) in l :\Projects\aCloud\InsightIntegration\Access.Cloud.WebService\Modules\NServiceBusModule.cs:line 25 at Ninject.Activation.Provider'1.Create(IContext context) in c:\Projects\Ninject\ninject\src\Ninject\ Activation\Provider.cs:C 中 Ninject.Activation.Context.Resolve() 的第 38 行:
在 System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 源) 在 System.Linq.Enumerable.WhereSelectArrayIterator2.MoveNext()

我也在调试器中检查过它,果然transport是空的。

我猜这是环境问题,但我认为传输只是来自一些在MsmqTransport()调用时设置的绑定。我尝试将加载模块的代码从 Ninject 网络引导程序移动到 Global.asax,但它没有任何区别。

任何帮助或指导表示赞赏!

0 投票
1 回答
2008 浏览

nservicebus - NServiceBus.Host.exe 由于未处理的异常而崩溃

我们已经看过几次了。我确定 MSDTC 存在某种 NHibernate 问题,但是为什么 NserviceBus 不将异常发送到错误队列而不是使主机进程崩溃?我们在 3.2.6 和 3.3.3 中都看到了异常

这也发生在 17 日上午 7:34 进行端点升级之前

日志名称:应用程序源:应用程序错误日期:2012 年 12 月 17 日上午 7:34:20 事件 ID:1000 任务类别:(100) 级别:错误关键字:经典用户:N/A 计算机:411357-SVCS01.daxko。本地描述:错误应用程序名称:NServiceBus.Host.exe,版本:3.2.6.0,时间戳:0x4ffd66f8 错误模块名称:KERNELBASE.dll,版本:6.1.7601.17651,时间戳:0x4e21213c 异常代码:0xe0434352 错误偏移:0x000000000000cacd进程 ID:0x2200 错误应用程序启动时间:0x01cddc556e2ef369 错误应用程序路径:D:\store\endpoints\Production\OnlineRegistrationEndpoint\NServiceBus.Host.exe 错误模块路径:C:\Windows\system32\KERNELBASE.dll 报告 ID:75b6c18c-484e -11e2-b05c-0050568e4fb1 事件 XML:1000 2 100 0x80000000000000 40360申请411357-SVCS01.daxko.local NServiceBus.Host.exe 3.2.6.0 4ffd66f8 KERNELBASE.dll 6.1.7601.17651 4e21213c e0434352 000000000000cacd 2200 01cddc556e2ef369 d:\存储\端点\生产\ OnlineRegistrationEndpoint \ NServiceBus.Host.exeÇ :\Windows\system32\KERNELBASE.dll 75b6c18c-484e-11e2-b05c-0050568e4fb1

日志名称:应用程序源:.NET 运行时日期:2012 年 12 月 17 日上午 7:34:18 事件 ID:1026 任务类别:无级别:错误关键字:经典用户:N/A 计算机:411357-SVCS01.daxko.local描述:应用程序:NServiceBus.Host.exe 框架版本:v4.0.30319 描述:进程因未处理的异常而终止。异常信息:System.InvalidOperationException 堆栈:在 NHibernate.Impl.SessionImpl.Close() 在 NHibernate.Impl.SessionImpl.Dispose(Boolean) 在 NHibernate.Transaction.AdoNetWithDistrubtedTransactionFactory+<>c_DisplayClass1 的 NHibernate.AdoNet.ConnectionManager.Disconnect() 。 b_0(System.Object, System.Transactions.TransactionEventArgs) 在 System.Transactions.TransactionCompletedEventHandler.Invoke(System.Object, System.Transactions.TransactionEventArgs) 在 System.Transactions.TransactionStatePromotedAborted.EnterState(System.Transactions.InternalTransaction) 在 System.Transactions .InternalTransaction.DistributedTransactionOutcome(System.Transactions.InternalTransaction, System.Transactions.TransactionStatus) 在 System.Transactions.Oletx.RealOletxTransaction.FireOutcome(System.Transactions.TransactionStatus) 在 System.Transactions.Oletx.OutcomeEnlistment.InvokeOutcomeFunction(System.Transactions.TransactionStatus) ) 在 System.Transactions.Oletx.OletxTransactionManager.ShimNotificationCallback(System.Object, Boolean) 在 System.Threading._ThreadPoolWaitOrTimerCallback.PerformWaitOrTimerCallback(System.对象,布尔值)

事件 XML:1026 2 0 0x80000000000000 40359 应用程序 411357-SVCS01.daxko.local 应用程序:NServiceBus.Host.exe 框架版本:v4.0.30319 描述:由于未处理的异常,该进程已终止。异常信息:System.InvalidOperationException 堆栈:在 NHibernate.Impl.SessionImpl.Close() 在 NHibernate.Impl.SessionImpl.Dispose(Boolean) 在 NHibernate.Transaction.AdoNetWithDistrubtedTransactionFactory+<>c_DisplayClass1 的 NHibernate.AdoNet.ConnectionManager.Disconnect() 。 <EnlistInDistributedTransactionIfNeeded>b_0(System.Object, System.Transactions.TransactionEventArgs) 在 System.Transactions.TransactionCompletedEventHandler.Invoke(System.Object, System.Transactions.TransactionEventArgs) 在 System.Transactions.TransactionStatePromotedAborted.EnterState(System.Transactions.InternalTransaction) 在 System.Transactions .InternalTransaction.DistributedTransactionOutcome(System.Transactions.InternalTransaction, System.Transactions.TransactionStatus) 在 System.Transactions.Oletx.RealOletxTransaction.FireOutcome(System.Transactions.TransactionStatus) 在 System.Transactions.Oletx.OutcomeEnlistment.InvokeOutcomeFunction(System.Transactions.TransactionStatus) ) 在 System.Transactions.Oletx.OletxTransactionManager.ShimNotificationCallback(System.Object, Boolean) 在 System.Threading._ThreadPoolWaitOrTimerCallback.PerformWaitOrTimerCallback(System.对象,布尔值)