【发布时间】:2017-09-13 20:21:45
【问题描述】:
您好,我已将 Azure Web Jobs SDK 的 nuget 包更新到 2.0 版,但出现以下错误。
Microsoft.Azure.WebJobs.Host.FunctionInvocationException: Exception while executing function: Functions.SparkPostCold_Queue ---> System.InvalidOperationException: Exception binding parameter 'emails' ---> System.InvalidOperationException: Invalid invoke string format for attribute. at Microsoft.Azure.WebJobs.Host.Bindings.AttributeCloner`1.New(String invokeString) at Microsoft.Azure.WebJobs.Host.Bindings.DefaultAttributeInvokerDescriptor`1.FromInvokeString(AttributeCloner`1 cloner, String invokeString) at Microsoft.Azure.WebJobs.Host.Bindings.AttributeCloner`1.<ResolveFromInvokeStringAsync>d__10.MoveNext()
我的函数如下所示。
public static void QueueItem(
[Table("emails")] IQueryable<EmailEntity> emails,
[Queue("queue")] ICollector<string> outputQueueMessage,
TextWriter logger)
{
var query = from p in emails select p;
foreach (EmailEntity email in query)
{
outputQueueMessage.Add(email.RowKey);
}
}
任何想法都将受到高度赞赏。
【问题讨论】:
-
失败时如何调用函数?
-
我猜这是通过仪表板调用的?或者可能是 JobHost.Call?
-
是的,仪表板正在调用该函数。
-
从异常中,函数名为SparkPostCold_Queue。我测试了您的代码并调用了
host.Call(typeof(Functions).GetMethod("QueueItem"));,它可以按我的预期工作。您是否在本地检查过您的代码以缩小此问题的范围?还是这个错误只发生在 azure 端? -
只是仔细检查:是导致问题的 exact [Table] 绑定吗?您是否在属性上设置任何其他属性?
标签: c# azure azure-webjobs azure-webjobssdk