我在Azure中创建了一个Web作业。这个Web作业由我的web api触发。此Web作业也设置为“连续”运行。但是,从我启动Web作业的那一刻起,我收到此错误消息(在日志中看到):
无法绑定队列以键入'System.String'
我的网络作业尝试重新启动,并再次收到相同的错误消息。
我试图对此错误消息进行一些研究,但我找不到任何东西。有没有人见过这个错误?这是我在functions.cs文件中的代码:
namespace DownloadProcessor
{
public class Functions
{
public static void ProcessQueueMessage([Queue("ringclonedownloadprocessorqueue")] string message, TextWriter log)
{
log.WriteLine("Processing" + message);
}
}
}
看起来很简单。另外,这是我的Program.cs文件中的函数:
namespace DownloadProcessor
{
// To learn more about Microsoft Azure WebJobs SDK, please see http://go.microsoft.com/fwlink/?LinkID=320976
class Program
{
// Please set the following connection strings in app.config for this WebJob to run:
// AzureWebJobsDashboard and AzureWebJobsStorage
static void Main()
{
var host = new JobHost();
// The following code ensures that the WebJob will be running continuously
host.RunAndBlock();
}
}
}
这看起来非常简单,我创建了其他类似的Web作业。有没有人见过这个错误信息?知道我可能做错了吗?
答案 0 :(得分:0)
万一有人遇到这个问题,我发现了发生了什么(在我的情况下)。我的问题在于这一行:
public static void ProcessQueueMessage([Queue("ringclonedownloadprocessorqueue")] string message, TextWriter log)
当我第一次创建它时,此Web作业不是一个连续的作业。当Visual Studio创建代码模板时,它使用[Queue("ringclonedownloadprocessorqueue")] string message
作为默认参数类型。我最近将作业更改为连续作业,而连续作业使用稍微不同的参数类型(QueueTrigger
而不是Queue
)。但是当我将作业更改为连续时,Visual Studio并未相应地更改参数类型。我需要进入并手动更新param类型。将功能更改为此可以解决问题:
namespace DownloadProcessor
{
public class Functions
{
public static void ProcessQueueMessage([QueueTrigger("ringclonedownloadprocessorqueue")] string message, TextWriter log)
{
log.WriteLine("Processing" + message);
}
}
}
答案 1 :(得分:0)
在Node.js环境中使用函数时遇到此错误。就我而言,这是由于我忘记为"direction": "out"
文件中的输出绑定指定function.json
的事实