设置:
密码
// ###########
// 1. Try
var eventHubClient = EventHubClient.CreateFromConnectionString(connectionString);
var tasks = new List<Task>();
foreach(var message in messages)
{
var t = eventHubClient.SendAsync(new EventData(Encoding.UTF8.GetBytes(message)));
tasks.Add(t);
}
await Task.WhenAll(tasks);
await eventHubClient.CloseAsync();
// ###########
// 2. Try
var eventHubClient = EventHubClient.CreateFromConnectionString(connectionString);
foreach(var message in messages)
{
try
{
await eventHubClient.SendAsync(new EventData(Encoding.UTF8.GetBytes(message)));
}
catch(Exception)
{
await eventHubClient.CloseAsync();
eventHubClient = EventHubClient.CreateFromConnectionString(connectionString);
}
}
await eventHubClient.CloseAsync();
当我向这个EventHub发送数千条消息时(甚至比这个扩展所能处理的还要多),我得到了一个
System.Net.Sockets.SocketException
从AMQP实施(
Microsoft.Azure.EventHubs
).
并非所有消息都将被处理,异常将保留并发生,直到我重新启动节点(发生在所有节点上)
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw
(System.Private.CoreLib,版本=4.0.0.0,区域性=中性,
PublicKeyToken=7cec85d7bea7798e)at
(System.Private.CoreLib,版本=4.0.0.0,区域性=中性,
PublicKeyToken=7cec85d7bea7798e)at
(Microsoft.Azure.EventHubs,版本=2.1.0.0,区域性=中性,
PublicKeyToken=7e34167dcc6d6d8c)
[...]
在
(System.Private.CoreLib,版本=4.0.0.0,区域性=中性,
PublicKeyToken=7cec85d7bea7798e)at
(System.Private.CoreLib,版本=4.0.0.0,区域性=中性,
PublicKeyToken=7cec85d7bea7798e)at
My.Company.Data.Azure.EventHubs.EventHubSender+d_u5.MoveNext
PublicKeyToken=null)
使现代化
eventHubClient