当绑定失败时,ASP.NET Webjobs 会错误地删除队列中的消息。正确的流程应该是消息不被删除,在可见性超时后重新出现重新处理。
这是调用日志
running in pid: 6424
Timestamp:10:02:27 PM
Parameters bound. Invoking user function.
--------
--------
Exception while executing:
System.InvalidOperationException, Error while binding function parameters.
at Microsoft.WindowsAzure.Jobs.RunnerProgram.InvokeWorker(MethodInfo m, BindResult[] binds, ParameterInfo[] ps)
at Microsoft.WindowsAzure.Jobs.RunnerProgram.Invoke(IConfiguration config, MethodInfo m, FunctionInstanceGuid instance, IRuntimeBindingInputs inputs, ParameterRuntimeBinding[] argDescriptors)
at Microsoft.WindowsAzure.Jobs.RunnerProgram.Invoke(FunctionInvokeRequest invoke, IConfiguration config)
at Microsoft.WindowsAzure.Jobs.RunnerProgram.MainWorker(FunctionInvokeRequest descr, IConfiguration config)
FAIL
有没有其他人在使用 Webjobs SDK 时遇到消息被错误地出列(删除)?
绑定失败是由于输入中的 JSON 格式无效,但我认为除非调用正确退出,否则不应删除输入消息。
这是 webjobs 控制台应用程序中的方法签名
public static void CreateCertificate(
[QueueInput ("certificaterequest") ] CertificateRequest inputcertificate,
[QueueOutput ("certificatemade") ] out CertificateRequest outputcertificate,
[BlobOutput ("certificatemade/{Guid}")] TextWriter writer)
{