Microsoft.Azure.WebJobs.Extensions.ServiceBus: Could not load type 'Microsoft.Azure.WebJobs.ParameterBindingData' from assembly 'Microsoft.Azure.WebJobs, Version=3.0.32.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.

问题描述

新部署Azure Funciton代码,遇见无法加载 “Microsoft.Azure.WebJobs.ParameterBindingData” 问题

错误消息:Microsoft.Azure.WebJobs.Extensions.ServiceBus: Could not load type 'Microsoft.Azure.WebJobs.ParameterBindingData' from assembly 'Microsoft.Azure.WebJobs, Version=3.0.32.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.

错误截图

【Azure Function App】遇见无法加载Microsoft.Azure.WebJobs.ParameterBindingData的问题_新版本

 

问题解答

根据对全网中同类错误的搜索,得知这是Azure Function App的Bug :“ParameterBindingData ” 需要在Function Host runtime v4.15之上的版本才能远行。

所以两种方式来缓解此问题:

方式一:降低 Microsoft.Azure.WebJobs.Extensions.ServiceBus 的版本( 5.4.0 )

方式二:升级 Function App Runtime 到最新版,并且把 Microsoft.Azure.WebJobs.Extensions.ServiceBus  也同时升级到最新版本 (5.12.0 或以上)

【Azure Function App】遇见无法加载Microsoft.Azure.WebJobs.ParameterBindingData的问题_新版本_02

 

参考资料

"Could not load type 'Microsoft.Azure.WebJobs.ParameterBindingData'" #1665 : https://github.com/Azure/azure-functions-dotnet-worker/issues/1665

[BUG] Function App crashes on startup with error "Could not load type 'Microsoft.Azure.WebJobs.ParameterBindingData'" #34467 : https://github.com/Azure/azure-sdk-for-net/issues/34467

 

附录:查看Azure Function的Runtime Version和如何修改它

查看Azure Function Runtime Version, 在 Function Overview页面中的 Runtime Version部分显示,如下图:

【Azure Function App】遇见无法加载Microsoft.Azure.WebJobs.ParameterBindingData的问题_新版本_03

修改Function Runtime Version可以通过修改配置参数 FUNCTIONS_EXTENSION_VERSION 来实现:https://docs.azure.cn/zh-cn/azure-functions/functions-app-settings#functions_extension_version

托管函数应用的 Functions 运行时版本。 波浪符(~)加主要版本号表示使用该主要版本的最新版本(例如 ~4)。 当同一主要版本的新版本可用时,会自动在函数应用中安装新版本。 要将应用固定为特定版本,请使用完整版本号(例如 4.26.0.0)

 

 

当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!