索引方法“QueueTrigger”时出错无法加载类型“Azure.Core.SyncAsyncEventHandler

ehxuflar  于 2023-01-14  发布在  其他
关注(0)|答案(1)|浏览(111)

我有一个azure函数队列触发器。它在本地工作正常,但部署后就不行了。在Application Insights中,我可以看到下面的错误消息&队列触发器不会因为此异常而被调用。我有一个带有azure函数v3的.netcore 3.1应用程序。甚至我还将其升级到了.net6.0和azure函数v4。此外,我尝试升级,降级和安装一些软件包仍然没有解决这个问题。

如何修复System.TypeLoadException -索引方法“NameOfQueueTrigger”时出错。无法从程序集“Azure. Core”加载类型Azure.Core.SyncAsyncEventHandler?

agyaoht7

agyaoht71#

Microsoft已删除Azure门户功能应用程序部署上的. NET 3.1支持:

使用队列触发器在本地环境(VS代码)中创建. NET 3.1 Azure函数应用程序-本地测试:

将V3项目部署到V4 Azure门户功能应用程序时,收到以下警告,并在单击"仍要部署"选项后成功部署:

    • 在Azure门户中测试**:

我已将队列触发器函数项目从. NET 3.1迁移到6,并将Azure Functions核心工具版本3迁移到4,并进行了以下更改:

  • . csproj文件代码*:
<Project  Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<!-- <TargetFramework>netcoreapp3.1</TargetFramework>
<AzureFunctionsVersion>v3</AzureFunctionsVersion> -->
<TargetFramework>net6.0</TargetFramework>
<AzureFunctionsVersion>v4</AzureFunctionsVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference  Include="Microsoft.Azure.WebJobs.Extensions.Storage"  Version="4.0.5"  />
<!-- <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.1.1" /> -->
<PackageReference  Include="Microsoft.NET.Sdk.Functions"  Version="4.1.1"  />
</ItemGroup>
<ItemGroup>
<None  Update="host.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None  Update="local.settings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</None>
</ItemGroup>
</Project>

更改.csproj文件中的版本后,它要求恢复丢失的依赖项,然后单击Restore

    • 结果**:

索引方法"NameOfQueueTrigger"时出错。未能从程序集"Azure. Core"加载类型Azure. Core. SyncAsyncEventHandler

    • 对于此错误,请检查以下步骤:**

1.检查local.settings.json和功能代码中定义的连接字符串是否相同,是否指向正确的存储帐户和正确的队列名称:

1.关于类似问题,请参阅@MayankBargali-MSFT提供的MS Q & A 503163。

相关问题