Получение Azure.WebJobs.Host.Listeners.FunctionListenerException для триггеров концентратора событий

Я использую azure webjobs v3 для триггера eventhub. До какого-то момента все работало нормально. Внезапно я получаю ошибку ниже. Может ли кто-нибудь помочь мне в решении этого?

public async Task Trigger00([EventHubTrigger("%eventhub-00%", Connection = "ConnectionString")] string message)
       {
          blah... 
       }
Host.Startup[0]
      The listener for function 'Trigger00' was unable to start.
Microsoft.Azure.WebJobs.Host.Listeners.FunctionListenerException: The listener for function 'Trigger00' was unable to start. ---> System.MissingMethodException: Method not found: 'Void Microsoft.Azure.EventHubs.EventHubsException..ctor(Boolean, System.String, System.Exception)'.
   at Microsoft.Azure.EventHubs.Processor.EventProcessorConfigurationException..ctor(String message, Exception innerException)
   at Microsoft.Azure.EventHubs.Processor.PartitionManager.GetPartitionIdsAsync()
   at Microsoft.Azure.EventHubs.Processor.PartitionManager.GetPartitionIdsAsync()
   at Microsoft.Azure.EventHubs.Processor.PartitionManager.InitializeStoresAsync()
   at Microsoft.Azure.EventHubs.Processor.PartitionManager.StartAsync()
   at Microsoft.Azure.EventHubs.Processor.EventProcessorHost.RegisterEventProcessorFactoryAsync(IEventProcessorFactory factory, EventProcessorOptions processorOptions)
   at Microsoft.Azure.WebJobs.EventHubs.EventHubListener.StartAsync(CancellationToken cancellationToken) in C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Extensions.EventHubs\Listeners\EventHubListener.cs:line 46
   at Microsoft.Azure.WebJobs.Host.Listeners.FunctionListener.StartAsync(CancellationToken cancellationToken, Boolean allowRetry) in C:\projects\azure-webjobs-sdk-rqm4t\src\Microsoft.Azure.WebJobs.Host\Listeners\FunctionListener.cs:line 68
   --- End of inner exception stack trace ---

person sindhuja    schedule 13.09.2019    source источник


Ответы (1)


Я решил эту проблему, удалив прямую зависимость от Microsoft.Azure.EventHubs 4.1.0.

Microsoft.Azure.WebJobs.Extensions.EventHubs 3.0.6 зависит от старой версии Microsoft.Azure.EventHubs (2.1.0). Я читал, что в этом пакете есть критические изменения, это может объяснить ошибку.

До:

    <PackageReference Include="Microsoft.ApplicationInsights" Version="2.10.0" />
    <PackageReference Include="Microsoft.Azure.Cosmos" Version="3.1.1" />
    <PackageReference Include="Microsoft.Azure.EventHubs" Version="4.1.0" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.EventHubs" Version="3.0.6" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.29" />

После:

    <PackageReference Include="Microsoft.ApplicationInsights" Version="2.10.0" />
    <PackageReference Include="Microsoft.Azure.Cosmos" Version="3.1.1" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.EventHubs" Version="3.0.6" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.29" />
person Iain    schedule 18.09.2019
comment
Вы должны пометить свой ответ как ответ ;-) У меня была такая же проблема, но у меня была прямая ссылка в библиотеке классов, которая использовалась приложением функций. - person Zenuka; 17.10.2019
comment
@Zenuka Рад, что ты это исправил. Я не спрашивал :-) - person Iain; 18.10.2019
comment
В моем случае моя функция зависела от других проектов, в которых я использовал Microsoft.Azure.EventHubs, и я не могу ее удалить. Я понижаю его до 3.0 - person Pankaj Rawat; 13.03.2020
comment
Могу подтвердить, что переход на версию 3.0 также устранил нашу проблему. - person Fernando Martín Besteiro; 14.09.2020