Azure Functions 运行时无法启动 - Microsoft.Extensions.DependencyInjection

Azure Functions runtime is unable to start - Microsoft.Extensions.DependencyInjection

我创建了一个 C# V2 Azure 持久函数,当我在 Visual Studio 2019 年 运行 时,它 运行 没问题。但是,一旦部署到 Azure,我就会看到以下:

The function runtime is unable to start. Interfaces.Avaloq.Presentation.AzureFunctions: Method not found: 'Microsoft.Extensions.DependencyInjection.IServiceCollection Microsoft.Azure.WebJobs.IWebJobsBuilder.get_Services()'.

在 Azure 中,我看到以下内容:运行时版本:2.0.12775.0 (~2)

cs proj的包引用如下:

<PackageReference Include="FluentValidation.AspNetCore" Version="8.5.0" />
    <PackageReference Include="MediatR.Extensions.Microsoft.DependencyInjection" Version="7.0.0" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions" Version="3.0.2" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.DurableTask" Version="1.8.2" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.ServiceBus" Version="3.0.5" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Storage" Version="3.0.10" />
    <PackageReference Include="Microsoft.Extensions.Configuration" Version="2.2.0" />
    <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.2.0" />
    <PackageReference Include="Microsoft.Extensions.Http" Version="2.2.0" />
    <PackageReference Include="Microsoft.Extensions.Logging" Version="2.2.0" />
    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="2.2.0" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.27" />
    <PackageReference Include="Base.Core.SharedKernel" Version="1.0.0.26447" />
    <PackageReference Include="Newtonsoft.Json" Version="11.0.2" />

我正在为 .Net Core v2.2 构建:

<TargetFramework>netcoreapp2.2</TargetFramework>
<AzureFunctionsVersion>v2</AzureFunctionsVersion>

我在"Startup"class的"Configure"方法中设置了一个断点,然后将VS2019调试器附加到已部署的Azure函数。虽然断点似乎设置正确(实心红色圆圈),但它永远不会被击中。

使用 Kudu 工具,我下载了 Azure Function 的副本 eventlog.xml。即使在重新部署 Function App(使用 DevOps 发布管道)之后,我仍然会在此处看到以下内容:

Msvsmon was unable to start a server named '127.0.0.1:50006'. The following error occurred: An instance of the remote debugger is already running on this computer, or another process is already bound to the specified TCP/IP port

解决问题的最佳方法是什么?

p.s。似乎很多人都有同样的问题:https://github.com/Azure/azure-functions-dotnet-extensions/issues/29

问题已通过更新到 .Net Core 3.0 解决。有关说明,请参阅:https://dev.to/azure/develop-azure-functions-using-net-core-3-0-gcm