【发布时间】:2015-09-28 14:25:37
【问题描述】:
我正在使用 Microsoft.Azure.WebJobs 和 Microsoft.Azure.WebJobs.ServiceBus 包来捕获 ServiceBus 主题事件。
功能代码如下-
public class Functions
{
[Singleton]
public static void Event4Processor(
[ServiceBusTrigger("MyTopic", "MySubscription", AccessRights.Listen)] BrokeredMessage message,
TextWriter log)
{
log.WriteLine(message);
}
}
但是,我收到了这个错误
{
"Type": "FunctionCompleted",
"EndTime": "2015-09-28T13:53:36.6540039+00:00",
"Failure": {
"ExceptionType": "System.ArgumentNullException",
"ExceptionDetails": "System.ArgumentNullException: Value cannot be null.\r\nParameter name: bindingData\r\n at Microsoft.Azure.WebJobs.Host.Bindings.BindingDataPathHelper.ConvertParameters(IReadOnlyDictionary`2 bindingData)\r\n at Microsoft.Azure.WebJobs.Host.SingletonManager.GetBoundScope(String scope, IReadOnlyDictionary`2 bindingData)\r\n at Microsoft.Azure.WebJobs.Host.Triggers.TriggeredFunctionBinding`1.<BindCoreAsync>d__7.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n at Microsoft.Azure.WebJobs.Host.Triggers.TriggeredFunctionBinding`1.<BindAsync>d__0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.<ExecuteWithLogMessageAsync>d__c.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.<TryExecuteAsync>d__1.MoveNext()"
},
"ParameterLogs": {},
"FunctionInstanceId": "a1dcf0a9-113f-4c7e-b136-fb8d8b7ee4aa",
"Function": {
"Id": "WebJobServiceBus.Functions.Event4Processor",
"FullName": "WebJobServiceBus.Functions.Event4Processor",
"ShortName": "Functions.Event4Processor",
"Parameters": [
{
"NamespaceName": "my-ns",
"TopicName": "myevents",
"SubscriptionName": "mysubscription",
"Name": "message",
"DisplayHints": {
"Description": "dequeue from 'mytopic/Subscriptions/mysubscription'",
"Prompt": "Enter the queue message body"
}
},
{
"Type": "ParameterDescriptor",
"Name": "log"
}
]
},
"Reason": "AutomaticTrigger",
"ReasonDetails": "New ServiceBus message detected on 'MyTopic/Subscriptions/MySubscription'.",
"StartTime": "2015-09-28T13:53:35.6639049+00:00",
"HostInstanceId": "ad1f5b26-ddec-4326-9cfb-df585065e773",
"HostDisplayName": "WebJobServiceBus",
"SharedQueueName": "azure-webjobs-host-ef6959df3bc9431680c944c6ca5b1eff",
"InstanceQueueName": "azure-webjobs-host-ad1f5b26ddec43269cfbdf585065e773",
"Heartbeat": {
"SharedContainerName": "azure-webjobs-hosts",
"SharedDirectoryName": "heartbeats/ef6959df3bc9431680c944c6ca5b1eff",
"InstanceBlobName": "ad1f5b26ddec43269cfbdf585065e773",
"ExpirationInSeconds": 45
}
}
如果我删除 Singleton 属性,一切正常!
我尝试过类似的选项 -
[Singleton(@"{CorrelationId}")]
但是,它没有帮助。
有什么问题(和解决方法)?
【问题讨论】:
标签: c# azureservicebus azure-webjobssdk