Мне удалось запустить приложение-функцию, которое имеет привязку к концентратору событий как из локального, так и из плана потребления West US2. За последние 4 дня, после того как мы переместили все наши зависимые проекты на сборку x64 и обновили все nugets до последней версии, приложение-функция начало давать сбой. Даже не запускается, сам functionsproject.dll не загружается. Та же проблема, даже если я разверну биты в плане потребления.
- Название проекта функций здесь - EventHubConsumers
- Версия функции Azure - 2.0
- Версия инструментов функций Azure - 2.28
- Конфигурация сборки проекта - x64
- Чистая версия - NET CORE 2.1
- Visual Studio 2019 и 2017
<PackageReference Include="Microsoft.ApplicationInsights" Version="2.10.0" /> <PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.0.0" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.EventHubs" Version="3.0.6" />
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="2.2.0" /> <PackageReference Include="Microsoft.Jarvis" Version="20190426.1.0-rc" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.29" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
<PackageReference Include="Polly" Version="7.1.0" />
Мне не удалось вытащить FusionLog. Я предполагаю, что у фреймворка функций StartLocator есть настраиваемая логика для загрузки библиотек, которая не заполняет журнал слияния.
Я пробовал отладить LoadFromAssemblyPath(string assemblyPath, bool addProbingPath)
в FunctionAssemblyLoadContext.cs, который вызывает это исключение. Я мог видеть этот путь к сборке и убедиться, что мое приложение функций встроено в эту папку. Я даже проверил версию dll и другие детали, открыв в IlSpy. Я не могу понять, почему сборка (функция app dll) не может быть загружена, если она существует на этом пути, как и ожидалось.
Зарегистрированные проблемы на Github: Ссылка
Пробуем старые версии Microsoft.Azure.Webjobs.Extensions.Eventhubs, т.е. пробуем версию 3.0.5
- Очистить, удалить obj, bin, а затем запустить
- Удаление всех старых версий AzureFunctionsTools в LocalAppData, кроме 2.28.
- Запуск от vs2017
[FunctionName("WriteToStore")]
public async Task Run([EventHubTrigger("activities", Connection = "EventHubConnectionAppSetting", ConsumerGroup = "%ConsumerGroup%")] EventData[] events,
[EventHub("failed-activities", Connection = "EventHubConnectionAppSetting")]IAsyncCollector<EventData> outputEvents)
{
//Logic here
}
More details from Functions Console:
Основные инструменты функций Azure (2.7.1505 хэш фиксации: eb8182995562240ca83dd0e0e3394586cf5fdfa3)
Версия среды выполнения функции: 2.0.12590.0
[8/4/2019 22:09:25 PM] Хост здания: запуск подавлен: False, конфигурация подавлена: False
[8/4/2019 22:09:26 PM] Произошла ошибка хоста
[8/4/2019 10:09:26 PM] System.Private.CoreLib: не удалось загрузить файл или сборку Microsoft..EventHubConsumers, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null.
Значение не может быть нулевым.
Имя параметра: поставщик
Нажмите любую, чтобы продолжить .... [8/4/2019 22:09:27 PM] Хост здания: запуск подавлен: False, конфигурация подавлена: False
[8/4/2019 22:09:27 PM] Произошла ошибка хоста
[8/4/2019 10:09:27 PM] System.Private.CoreLib: не удалось загрузить файл или сборку Microsoft..EventHubConsumers, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null.
Хостинговая среда: Производство
Путь к корневому каталогу содержимого: D: some \ EventHubConsumers \ bin \ x64 \ Debug \ netcoreapp2.1
Сейчас слушаем: http://0.0.0.0:7071
Приложение запущено. Нажмите Ctrl + C, чтобы выключить.
[8/4/2019 22:09:29] Хост здания: запуск подавлен: ложь, конфигурация подавлена: ложь
[8/4/2019 22:09:29] Произошла ошибка хоста
[8/4/2019 10:09:29 PM] System.Private.CoreLib: не удалось загрузить файл или сборку Microsoft.some.EventHubConsumers, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null.