我有以下方法定义:
public static void ProcessPackageRequestMessage(
[QueueTrigger(queues.PACKAGE)] PackageRequestMessage message,
[Blob(blobs.PACKAGE + "/{RequestId}_{BlobFile}")] ICloudBlob blob,
[Table(tables.PACKAGE)] CloudTable table,
[Queue(queues.EMAIL)] out PackageEmailMessage packageEmailMessage)
PackageRequestMessage 类定义如下:
public class PackageRequestMessage
{
public Guid RequestId { get; set; }
public Guid FactoryId { get; set; }
public string BlobFile { get; set; }
public string SKU { get; set; }
public string EmailAddress { get; set; }
}
在 SDK 0.2 版本中,当 PackageRequestMessage 的 JSON 消息发布到队列时,会调用该方法,并根据 PackageRequestMessage 中的参数(RequestId 和 BlobFile)找到合适的 Blob,并且一切正常。
现在,在 SDK 的 0.3 版中,我收到以下错误:
2 names, Boolean allowUnbound)
at Microsoft.Azure.Jobs.RouteParser.ApplyBindingData(String pattern, IReadOnlyDictionary
System.InvalidOperationException:System.InvalidOperationException:异常绑定参数“blob”---> System.InvalidOperationException:Microsoft.Azure.Jobs.RouteParser.ApplyNamesWorker(字符串模式,IDictionary 2 bindingData)的名称参数“RequestId”没有值.Azure.Jobs.Host.Blobs.Bindings.BlobBinding.Bind(BindingContext context) 在 Microsoft.Azure.Jobs.Host.Runners.TriggerParametersProvider 1.Bind()
--- End of inner exception stack trace ---
at Microsoft.Azure.Jobs.Host.Runners.DelayedException.Throw()
at Microsoft.Azure.Jobs.Host.Runners.WebSitesExecuteFunction.ExecuteWithSelfWatch(MethodInfo method, ParameterInfo[] parameterInfos, IReadOnlyDictionary
2 个参数,TextWriter consoleOutput) 在 Microsoft.Azure.Jobs.Host.Runners.WebSitesExecuteFunction.ExecuteWithOutputLogs (FunctionInvokeRequest 请求,IReadOnlyDictionary2 parameters, TextWriter consoleOutput, CloudBlobDescriptor parameterLogger, IDictionary
2 parameterLogCollector) 在 Microsoft.Azure.Jobs.Host.Runners.WebSitesExecuteFunction.ExecuteWithLogMessage(FunctionInvokeRequest request, RuntimeBindingProviderContext context, FunctionStartedMessage message, IDictionary`2 parameterLogCollector) 在 Microsoft.Azure.Jobs.Host.Runners.WebSitesExecuteFunction.Execute(FunctionInvokeRequest request, RuntimeBindingProviderContext 上下文)
在仪表板中,消息本身显示在 JSON 中存在有效的 RequestId,因此我不确定为什么报告它丢失。