C# Azure函数事件中心输出绑定在部署时不工作

C# Azure函数事件中心输出绑定在部署时不工作,c#,azure,azure-functions,azure-eventhub,C#,Azure,Azure Functions,Azure Eventhub,我使用Azure函数将消息从Rabbit MQ代理获取到事件中心 当我在本地运行该函数时,它工作得非常完美 以下是函数的代码: using System.Text; using System.Dynamic; using System.Threading.Tasks; using CaseOnline.Azure.WebJobs.Extensions.Mqtt; using CaseOnline.Azure.WebJobs.Extensions.Mqtt.Messaging; using Mic

我使用Azure函数将消息从Rabbit MQ代理获取到事件中心

当我在本地运行该函数时,它工作得非常完美

以下是函数的代码:

using System.Text;
using System.Dynamic;
using System.Threading.Tasks;
using CaseOnline.Azure.WebJobs.Extensions.Mqtt;
using CaseOnline.Azure.WebJobs.Extensions.Mqtt.Messaging;
using Microsoft.Azure.WebJobs;
using Newtonsoft.Json;
 
public static class Test
{
 
    [FunctionName("EventHubOutput")]
 
    public static async Task Run(
        [MqttTrigger("topic/#")] IMqttMessage message,
        [EventHub("eventhubname", Connection = "EventHubConnectionAppSetting")] IAsyncCollector<string> outputEvents,
        ILogger log)
    {
        var body = message.GetMessage();
        var bodyString = Encoding.UTF8.GetString(body);
        dynamic obj = JsonConvert.DeserializeObject<ExpandoObject>(bodyString);
        obj.Topic = message.Topic;
 
        await outputEvents.AddAsync(JsonConvert.SerializeObject(obj));
    }
}
知道问题出在哪里吗


谢谢。

您使用的绑定不正确。退房

以下示例显示了一个C#函数,该函数将RabbitMQ消息作为RabbitMQ事件读取并记录:

以下示例显示如何将消息作为POCO读取:


我建议您查看此完整的指南,以在Azure函数中设置Rabbit MQ触发器:

我认为这个问题与代理绑定无关。CaseOnline.Azure.WebJobs.Extensions.Mqtt在获取给定主题的消息时运行良好。代理的协议是MQTT,这个扩展似乎工作得很好。出于某些原因,我甚至无法将您在此处发布的RabbitMQ触发器置于工作状态,如果您检查错误消息,则我在处理参数“outputEvents”时出错,该参数是与事件关联的指定IAsyncCollector。您是否可以尝试使用我在上面共享的MS Docs链接?我认为这可能与绑定/兼容性有关。请注意,RabbitMQ绑定仅在高级和专用计划中得到完全支持。不支持消费。此外,您能否共享为此而遵循的教程的链接?
Microsoft.Azure.WebJobs.Host.FunctionInvocationException: Exception while executing function: EventHubOutput
---> System.InvalidOperationException: Error while handling parameter outputEvents after function returned:
---> System.Net.Sockets.SocketException (0xFFFDFFFF): Name or service not known
at (...)
[FunctionName("RabbitMQTriggerCSharp")]
public static void RabbitMQTrigger_BasicDeliverEventArgs(
    [RabbitMQTrigger("queue", ConnectionStringSetting = "rabbitMQConnectionAppSetting")] BasicDeliverEventArgs args,
    ILogger logger
    )
{
    logger.LogInformation($"C# RabbitMQ queue trigger function processed message: {Encoding.UTF8.GetString(args.Body)}");
}
namespace Company.Function
{
    public class TestClass
    {
        public string x { get; set; }
    }

    public class RabbitMQTriggerCSharp{
        [FunctionName("RabbitMQTriggerCSharp")]
        public static void RabbitMQTrigger_BasicDeliverEventArgs(
            [RabbitMQTrigger("queue", ConnectionStringSetting = "rabbitMQConnectionAppSetting")] TestClass pocObj,
            ILogger logger
            )
        {
            logger.LogInformation($"C# RabbitMQ queue trigger function processed message: {pocObj}");
        }
    }
}