簡體   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