我正在致力于将 Azure 函数应用程序(服务总线触发器)从 .NET 4.8 迁移到 .NET 8,该应用程序在我的本地按预期工作,没有任何错误。当我将函数应用程序部署到 Azure 门户时,我遇到以下错误。
“Microsoft.Azure.WebJobs.Script:在外部启动类中配置服务时出错。Grpc.AspNetCore.Server:无法加载文件或程序集'Microsoft.AspNetCore.Routing,Version=7.0.0.0,Culture=neutral,PublicKeyToken= adb9793829ddae60'。系统找不到指定的文件。”
这是我的 .Cs proj 文件代码:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<AzureFunctionsVersion>v4</AzureFunctionsVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Azure.Storage.Blobs" Version="12.22.2" />
<PackageReference Include="Azure.Storage.Common" Version="12.21.1" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.ServiceBus" Version="5.13.0" />
<PackageReference Include="Microsoft.Data.SqlClient" Version="5.2.2" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.1" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.5.0" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="8.0.1" />
<PackageReference Include="System.Data.SqlClient" Version="4.8.6" />
<PackageReference Include="System.Net.Http" Version="4.3.4" />
<PackageReference Include="System.ServiceModel.Duplex" Version="6.0.0" />
<PackageReference Include="System.ServiceModel.Http" Version="8.0.0" />
<PackageReference Include="System.ServiceModel.NetTcp" Version="8.0.0" />
</ItemGroup>
<ItemGroup>
<None Update="host.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="local.settings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</None>
</ItemGroup>
<ItemGroup>
<Folder Include="Instances\" />
</ItemGroup>
</Project>
我仅在 AzurePortal 中遇到此错误,它按预期在我的本地环境中工作。
想了解这个问题
将所有 nuget 包更新到最新版本并将 Microsoft.Azure.WebJobs.Extensions.ServiceBus 降级到 5.120 后,该问题现已修复。 0.
在 Azure 门户的配置中添加了以下值 在此输入图片描述