You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地运行带NService Bus服务总线触发器的Azure Function测试问题

解决方法

1. 修正请求负载格式

你之前给input加了/{my escaped event object}/的包裹格式,这会让消息体被识别成纯字符串而非JSON对象。直接传入MyEvent的原始JSON结构即可:

{
    "input": {
        "YourEventProperty1": "对应值",
        "YourEventProperty2": 12345
    }
}

2. 补全NServiceBus必需的请求头

除了NServiceBus.EnclosedMessageTypes,还要添加匹配序列化器的内容类型头,以及事件场景下的消息意图头:

Content-Type: application/json
NServiceBus.EnclosedMessageTypes: Namespace.Models.MyEvent
NServiceBus.ContentType: application/json
NServiceBus.MessageIntent: Publish

3. 确保序列化器配置正确

在Azure函数的NServiceBus端点配置里,要明确把MyEvent加入序列化器的已知类型列表,避免类型推断失败:

var serializer = new SystemTextJsonSerializer();
serializer.AddKnownType(typeof(Namespace.Models.MyEvent));
endpointConfiguration.UseSerialization(serializer);

4. 直接模拟完整服务总线消息(备选方案)

如果上述方法仍有问题,可以直接构造服务总线Message对象的结构传入,把消息体转成Base64编码,NServiceBus的头信息放在UserProperties里:

{
    "input": {
        "Body": "这里替换成你的MyEvent对象JSON字符串的Base64编码",
        "ContentType": "application/json",
        "MessageId": "任意唯一ID",
        "UserProperties": {
            "NServiceBus.EnclosedMessageTypes": "Namespace.Models.MyEvent",
            "NServiceBus.MessageIntent": "Publish"
        }
    }
}

内容的提问来源于stack exchange,提问作者JDBennett

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 05:43:18