【发布时间】:2018-08-26 02:58:19
【问题描述】:
我正在像这样将消息传递到我的 Azure 服务总线队列,其中“MessageId”值是一个数字字符串。 '345'。我在 Azure 门户仪表板的队列中看到它,当我在服务总线资源管理器中查看消息时,我看到消息 id 作为我正在传递的 eventId。
Message message = new Message
{
MessageId = eventId.ToString(), // passing it a value of '123'
ScheduledEnqueueTimeUtc = enqueuedTime
};
var sendCodeSequence = await queueClient.ScheduleMessageAsync(message, new DateTimeOffset(enqueuedTime));
但是当我的函数被触发时,我收到一个异常,指出函数中的 myQueueItem 是 0 或 null,具体取决于我正在调用的函数。
这是给我这个问题的一个函数的前几行代码。该事件始终为 null 并引发异常,因为 myQueueItem 始终为 null 或 0。
我想,我以前有这个工作,但现在我认为每次触发我的函数时都会进行更改并抛出异常!
问题 - myQueueItem 不是我在创建消息并将其放入队列时传递的 messageId 吗?
[FunctionName("CancelEvent")]
public static void Run([ServiceBusTrigger("canceleventqueue", AccessRights.Manage, Connection = "events2017_RootManageSharedAccessKey_SERVICEBUS")]string myQueueItem, TraceWriter log, ExecutionContext context)
{
try
{
log.Info($"Cancel event started id: {myQueueItem}");
var eventId = Convert.ToInt32(myQueueItem);
using (var dbContext = new EventContext(myDatabaseConnectionString))
{
var event = dbContext.Events.Where(i => i.EventId == eventId).FirstOrDefault();
if (Event == null)
throw new Exception("no event with this id: " + myQueueItem);
【问题讨论】:
标签: c# azure azure-functions azureservicebus azure-triggers