gpt4 book ai didi

c# - 使用 JSON 时 NServiceBus 处理程序出现空消息

转载 作者:数据小太阳 更新时间:2023-10-29 02:26:36 25 4
gpt4 key购买 nike

我遇到了 NServiceBus 4.4.2 的问题,这让我很吃力。我在 MVC 应用程序中自行托管 NSB。该实例被放入 Autofac 容器中并注入(inject)到 Controller 中。到目前为止,还不错。

使用 SendLocal(命令)发送消息按预期工作。该消息以 JSON 形式出现在 MSMQ 中,因为我已将 NSB 配置为这样做。

现在,我的消息处理程序被调用,它也是我的 MVC 应用程序的一部分。为简单起见,我现在不向此处理程序注入(inject)任何内容。在任何情况下,出现的消息都是空的(例如,属性为 null 或 Guid.Empty)。

当我将 NSB 的序列化更改为 XML 时,它起作用了。看起来,同一个实例使用 JSON 进行序列化,使用 XML 进行反序列化。

这是我用来初始化总线的代码:

        Configure.Transactions.Enable();
Configure.Serialization.Json();
Configure.Features.Disable<Sagas>();
Feature.Disable<XmlSerialization>();

Instance =
Configure.With(
AllAssemblies.Matching("Messages1.dll").And("Handler1.dll").And("Messages2.dll").And("Handler2.dll"))
.DefineEndpointName(ConfigurationManager.AppSettings["ServiceBusEndpointName"])
.DefaultBuilder()
.Log4Net<RollingFileAppender>(x => x.File = ConfigurationManager.AppSettings["ServiceBusLog"])
.RavenSubscriptionStorage()
.UseTransport<Msmq>()
.PurgeOnStartup(false)
.UnicastBus()
.RunHandlersUnderIncomingPrincipal(false)
.CreateBus()
.Start(() => Configure.Instance.ForInstallationOn<Windows>()
.Install());

如果不知道这里发生了什么:-(有人知道吗?

亲切的问候马尔科·海涅

最佳答案

感谢大家的帮助,

但通常情况下,错误在于椅子和键盘之间:-/

是的,我所有的观察似乎都是正确的,但出于所有错误的原因。问题很简单:我的消息类没有无参数构造函数,只有私有(private) setter 。看起来,虽然 XML 序列化程序对此没有问题,但 JSON 序列化程序却有。

在公开属性 get/setter 之后,我终于收到了我的消息。无赖。

特别感谢 Particular,他为帮助我付出了巨大的努力。我想,我所需要的只是休息几天 =)

关于c# - 使用 JSON 时 NServiceBus 处理程序出现空消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22225349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com