繁体   English   中英

函数“SignalR”的侦听器无法启动。 与信号器绑定的 Azure 函数

[英]The listener for function 'SignalR' was unable to start. Azure function binding with signalr

我正在开发一个应用程序,其中 IOT 设备与 Azure IOT 中心相连。 并且其实时数据可以在网络视图上可见。 但是,我遇到了一个错误,我试图将数据 Azure 函数与 SignalR 绑定,但是当我运行应用程序时,我收到以下错误消息。

函数“SignalR”的侦听器无法启动。 Microsoft.Azure.EventHubs.Processor:获取 EventHub PartitionId 列表时遇到错误。 System.Private.CoreLib:链接地址“$management”与任何预期格式都不匹配。

错误描述图片

我已经尝试了一切来修复它,但每次都失败了。 如果有人能帮我找到这个问题的解决方案,我将不胜感激。

这是我从这个链接使用的脚本

这是我的SignalR.cs

 public static class SignalR
{
    [FunctionName("SignalR")]
    public static async Task Run(
        [IoTHubTrigger("messages/events", Connection = "IoTHubTriggerConnection", ConsumerGroup = "$Default")]EventData message,
        [SignalR(HubName = "broadcast")]IAsyncCollector<SignalRMessage> signalRMessages,
        ILogger log)
    {

        var deviceData = JsonConvert.DeserializeObject<DeviceData>(Encoding.UTF8.GetString(message.Body.Array));
        deviceData.DeviceId = Convert.ToString(message.SystemProperties["iothub-connection-device-id"]);


        log.LogInformation($"C# IoT Hub trigger function processed a message: {JsonConvert.SerializeObject(deviceData)}");
        await signalRMessages.AddAsync(new SignalRMessage()
        {
            Target = "notify",
            Arguments = new[] { JsonConvert.SerializeObject(deviceData) }
        });
    }
}

这是我的SignalRConnection.cs

    public static class SignalRConnection
{
    [FunctionName("SignalRConnection")]
    public static SignalRConnectionInfo Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequest req,
        [SignalRConnectionInfo(HubName = "broadcast")] SignalRConnectionInfo info,
        ILogger log) => info;
}

这是我的local.settings.json文件

    {
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet",
    "AzureSignalRConnectionString": "",
    "MSDEPLOY_RENAME_LOCKED_FILES": 1,
    "IoTHubTriggerConnection": ""
  },
  "Host": {
    "LocalHttpPort": 7071,
    "CORS": "*"
  }
}

对于 IoTHubTriggerConnection,我使用的是 iothubjohnsoncontrol 的连接字符串(如下图所示)。

IOT 集线器密钥图像

对于 AzureSignalRConnectionString,我使用的是 signalrjohnsoncontrol 的连接字符串(如下图所示)。

SignalR 键图像

您能否检查一下您是否从此处提供了与 EventHub 兼容的名称和与 EventHub 兼容的连接字符串在此处输入图片说明

请尝试将消息/事件替换为 EventHub-Compatible 名称和 IoTHubTriggerConnection 作为来自门户的 EventHub 兼容端点。

这里几乎类似的讨论: https : //github.com/Azure/azure-event-hubs-dotnet/issues/103

我有一个类似的用例将 Iot 数据推送到 Azure 数据资源管理器,这就是我的函数的样子在此处输入图片说明

物联网集线器连接字符串,与 EventHub 兼容在此处输入图片说明

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM