我能够运行具有来自本地和 West US2 消费计划的 eventhub 绑定的函数应用程序。从过去 4 天开始,在我们将所有依赖项目转移到 x64 中构建并将所有 nuget 更新到最新版本之后,函数应用程序开始失败。它甚至无法启动,无法加载functionsproject.dll 本身。即使我将位部署到消费计划,也会出现同样的问题。
- 此处的函数项目名称 - EventHubConsumers
- Azure 函数版本 - 2.0
- Azure 函数工具版本 - 2.28
- 项目构建配置 - x64
- 网络版本-NET CORE 2.1
- Visual Studio 2019 和 2017
Nuget dependencies:
<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 中抛出此异常。我可以看到程序集 bin 路径并验证我的函数应用程序是否已内置到该文件夹本身中。我什至通过在 IlSpy 中打开来验证 dll 的版本和其他详细信息。我无法弄清楚为什么程序集(函数应用程序 dll)按预期存在于该路径中时无法加载。
[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 Functions 核心工具(2.7.1505 提交哈希:eb8182995562240ca83dd0e0e3394586cf5fdfa3)
函数运行时版本:2.0.12590.0
[8/4/2019 10:09:25 PM] 构建主机:启动抑制:False,配置抑制:False
[8/4/2019 10:09:26 PM] 主机发生错误
[8/4/2019 10:09:26 PM] System.Private.CoreLib:无法加载文件或程序集“Microsoft..EventHubConsumers,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”。
值不能为空。
参数名称:提供者
按任意键继续....[8/4/2019 10:09:27 PM] 构建主机:启动抑制:False,配置抑制:False
[8/4/2019 10:09:27 PM] 发生主机错误
[8/4/2019 10:09:27 PM] System.Private.CoreLib:无法加载文件或程序集“Microsoft..EventHubConsumers,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”。
托管环境:生产环境
内容根路径:D:some\EventHubConsumers\bin\x64\Debug\netcoreapp2.1
现在正在收听:http://0.0.0.0:7071 http://0.0.0.0:7071
申请开始了。按 Ctrl+C 关闭。
[8/4/2019 10:09:29 PM] 构建主机:启动抑制:False,配置抑制:False
[8/4/2019 10:09:29 PM] 主机发生错误
[8/4/2019 10:09:29 PM] System.Private.CoreLib:无法加载文件或程序集“Microsoft.some.EventHubConsumers,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”。