首页 > 解决方案 > 无法在 .net 框架中的 Azure 函数应用中绑定参数“lockToken”?

问题描述

我在应用程序中使用 .net core Azure 功能,没有遇到任何问题,代码如下。

但是,当我使用 .net 框架创建 Azure 函数应用程序时,它会抛出以下错误。

我尝试了所有可能的谷歌解决方案。该错误显然是因为 nuget 和库,因为相同的代码适用于 v2 .net 核心功能应用程序。

[FunctionName("Function1")]
        public static async System.Threading.Tasks.Task RunAsync([ServiceBusTrigger("topic", "sub", Connection = "ConnectionStringSettingName")]Message mySbMsg, string lockToken, MessageReceiver messageReceiver, ILogger log)
        {
            log.LogInformation($"C# ServiceBus topic trigger function processed message: {mySbMsg}");

            
        }

我什至也试过这个:

 [FunctionName("Function1")]
            public static async System.Threading.Tasks.Task RunAsync([ServiceBusTrigger("topic", "sub", Connection = "ConnectionStringSettingName")]Message mySbMsg, Guid lockToken, MessageReceiver messageReceiver, ILogger log)
            {
                log.LogInformation($"C# ServiceBus topic trigger function processed message: {mySbMsg}");
    
                
            }

如果我把它当作 guid 或字符串,反之亦然,它会给出错误:

错误索引方法“Function1.RunAsync”。Microsoft.Azure.WebJobs.Host:无法将参数“lockToken”绑定到类型 Guid。确保绑定支持参数类型。如果您使用绑定扩展(例如 ServiceBus、Timers 等),请确保您已在启动代码中调用了扩展的注册方法(例如 config.UseServiceBus()、config.UseTimers() 等.)。

反之错误:

RunAsync:Microsoft.Azure.WebJobs.Host:索引方法“Function1.RunAsync”时出错。Microsoft.Azure.WebJobs.Host:无法将参数“lockToken”绑定到类型 Guid。确保绑定支持参数类型。如果您使用绑定扩展(例如 ServiceBus、Timers 等),请确保您已在启动代码中调用了扩展的注册方法(例如 config.UseServiceBus()、config.UseTimers() 等.)。

标签: azureazure-functionsazureservicebusazure-function-app

解决方案


您发送的 locktoken 参数是一个字符串。

错误消息是它无法将 locktoken 绑定到 Guid。

因此,它可能需要一个有效 Guid 的字符串,而您正在发送其他内容。


推荐阅读