MailKit ConnectAsync 在没有互联网连接的情况下冻结
MailKit ConnectAsync freezes without internet connection
我对 MailKit 有点厌倦,但如果尝试在没有互联网连接(拔出/插入)的情况下连接 ImapClient.ConnectAsync(...)
,则 ConnectAsync 会冻结。
我正在尝试以下示例 - ImapIdleExample:
https://github.com/jstedfast/MailKit/blob/master/Documentation/Examples/ImapIdleExample.cs
在第 103 行 async Task WaitForNewMessagesAsync ()
九分钟内我关闭了我的互联网连接,九分钟后我得到一个 IOException
(总是导致客户端断开连接)。
第64行async Task ReconnectAsync ()
客户端未连接client.IsConnected
为false,执行下面一行,第67行await client.ConnectAsync (host, port, sslOptions, cancel.Token)
就是这样,没有其他事情发生。此外,当我重新连接到互联网时,ConnectAsync
仍然冻结。
我正在连接端口 993 和 SecureSocketOptions SslOnConnect。 ImapClient.Timeout
值为120000,也是过了这个时间,还是冻结。是否还有另一个超时或其他原因?
现有的互联网连接一切正常。
ImapIdleExample 中的示例运行良好,但如果我断开计算机与 Internet 的连接,则会出现未处理的异常:
System.Net.Sockets.SocketException with SocketErrorCode = HostNotFound
我更新了 async Task WaitForNewMessagesAsync ()
和 async Task FetchMessageSummariesAsync (bool print)
中的 catch 块:
catch (Exception exception)
{
await Task.Delay(new TimeSpan(0, 1, 0), CancelToken.Token);
await ReconnectAsync();
}
我对 MailKit 有点厌倦,但如果尝试在没有互联网连接(拔出/插入)的情况下连接 ImapClient.ConnectAsync(...)
,则 ConnectAsync 会冻结。
我正在尝试以下示例 - ImapIdleExample: https://github.com/jstedfast/MailKit/blob/master/Documentation/Examples/ImapIdleExample.cs
在第 103 行 async Task WaitForNewMessagesAsync ()
九分钟内我关闭了我的互联网连接,九分钟后我得到一个 IOException
(总是导致客户端断开连接)。
第64行async Task ReconnectAsync ()
客户端未连接client.IsConnected
为false,执行下面一行,第67行await client.ConnectAsync (host, port, sslOptions, cancel.Token)
就是这样,没有其他事情发生。此外,当我重新连接到互联网时,ConnectAsync
仍然冻结。
我正在连接端口 993 和 SecureSocketOptions SslOnConnect。 ImapClient.Timeout
值为120000,也是过了这个时间,还是冻结。是否还有另一个超时或其他原因?
现有的互联网连接一切正常。
ImapIdleExample 中的示例运行良好,但如果我断开计算机与 Internet 的连接,则会出现未处理的异常:
System.Net.Sockets.SocketException with SocketErrorCode = HostNotFound
我更新了 async Task WaitForNewMessagesAsync ()
和 async Task FetchMessageSummariesAsync (bool print)
中的 catch 块:
catch (Exception exception)
{
await Task.Delay(new TimeSpan(0, 1, 0), CancelToken.Token);
await ReconnectAsync();
}