返回ServiceBusMessage时消息体为空

问题描述 投票:0回答:1

我有一个简单的 .NET 7 点网隔离 Azure 函数,具有服务总线输出绑定:

[Function(nameof(abc))]                                                                                                                                            
[ServiceBusOutput("abc", Connection = "abcServiceBusConnection")]                                             
public async Task<ServiceBusMessage> RunDebug([HttpTrigger(AuthorizationLevel.Anonymous, "POST")] HttpRequestData request)
{                                                                                                                         
    using var streamReader = new StreamReader(request.Body);                                                              
                                                                                                                          
    var requestBody = await streamReader.ReadToEndAsync();                                                                
                                                                                                                          
    return await Execute(requestBody);                                                                        
} 

private async Task<ServiceBusMessage> Execute(string input)
{
    // logic...
    var s =  new ServiceBusMessage(                                                   
    JsonConvert.SerializeObject(                                                  
        new                                                                       
        {                                                                         
            Id = "abc",                                                      
            Container = "xyz"                                                  
        }))                                                                       
    {                                                                                 
        Subject = "sub1"                                                          
    };                                                                                
                                                                                  
    return s;                                                                         

}                                                                                                                        

问题是,每条消息的正文都是空的:

为什么会这样?是否可以使用

service bus
返回
subject/label
消息并从 azure 函数返回
string

.net azure azure-functions azureservicebus
1个回答
0
投票

这个方法行不通。要返回消息,只能使用基本类型,例如

string
byte[]
。要返回 SDK 类型
ServiceBusMessage
,您需要注入
ServiceBusClient
并创建一个发送者来发送您的消息。或多条消息。

请参阅此问题了解详细信息和原因。

© www.soinside.com 2019 - 2024. All rights reserved.