Как исправить «InvalidOperationException: нет получателя концентратора событий с именем <имя моего концентратора событий>» - PullRequest
0 голосов
/ 16 мая 2019

Я использую веб-задания Azure версии 3.x для триггера EventHub.Предоставил строку подключения концентратора событий в файле appSettings.json, используя поле «EventHubConnection».Но когда я пытался запустить функцию, я получаю сообщение об ошибке ниже: Microsoft.Azure.WebJobs.Host.Indexers.FunctionIndexingException: 'Метод индексации ошибок' Functions.Trigger '' InvalidOperationException: Нет получателя концентратора событий с именем

Program.cs

var builder = new HostBuilder();
builder.ConfigureWebJobs(b =>
{
    b.AddEventHubs();
});
var host = builder.Build();
using (host)
{
     host.Run();
}

Function.cs:

public static void Trigger([EventHubTrigger("my eventhub name")] EventData message, ILogger logger)
{
    string data = Encoding.UTF8.GetString(message.Body);
    logger.LogDebug(".....");
}

appsettings.json:

{
  "ConnectionStrings": {
    "EventHubConnection": "Endpoint=....."
  }
}

1 Ответ

0 голосов
/ 16 мая 2019

Пожалуйста, используйте следующий код и настройки:

appsettings.json (также помните, что щелкните правой кнопкой мыши файл appsettings.json -> щелкните свойства -> установите для параметра «Копировать в выходной каталог» значение «копировать, если новее»):

{  
  "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=xxx;AccountKey=xxx;EndpointSuffix=core.windows.net", 
  "EventHubConnectionString": "Endpoint=sb://xxxx"
}

Function.cs:

public static void Trigger([EventHubTrigger("my eventhub name",Connection = "EventHubConnectionString")] EventData message, ILogger logger)
{

    string data = Encoding.UTF8.GetString(message.Body);
    Console.WriteLine(data+";;xxx");
}

Результат теста:

enter image description here

...