检测是否已发送EventHub消息

时间:2018-09-12 14:24:32

标签: c# async-await azure-eventhub

我正在开发一个通过Azure事件中心发送事件的应用程序。 等待发送消息的任务,我使用ContinueWith记录了事件已发送。 使用Azure的防火墙规则运行时,将成功发送事件,但如果没有规则,则不会成功发送事件。但是,两种情况都会产生相同的控制台输出,告诉我该事件已发送。

如何判断事件是否已成功发送到事件中心,以便程序可以相应地执行操作?

发送事件的代码:

try {
    eventHubClient = EventHubClient.CreateFromConnectionString(connectionStringBuilder.ToString());
    Task t = eventHubClient.SendAsync(new EventData(Encoding.UTF8.GetBytes(message)));
    await t.ContinueWith(delegate {
        log.Info($"Azure Event sent");
        });
    }
    catch (Exception e) {
    Console.WriteLine($"{DateTime.Now} > EventSender-exception {e.Message}");
    }

1 个答案:

答案 0 :(得分:0)

这不是主要问题的答案,但是,由于该问题是标签async-await,并且代码未遵循不将旧式.NET 4.0任务API与async-await混合使用的建议,请在此处去:

try
{
    eventHubClient = EventHubClient.CreateFromConnectionString(connectionStringBuilder.ToString());

    await eventHubClient.SendAsync(new EventData(Encoding.UTF8.GetBytes(message)));

    log.Info($"Azure Event sent");
}
catch (Exception e)
{
    Console.WriteLine($"{DateTime.Now} > EventSender-exception {e.Message}");
}