0

Chilkat IMAP 服务在几天后卡在 100% CPU 上,使用它的 Windows 服务正常执行。它每隔几天(3-7 天)就会被复制一次。

我将 Chilkat IAMP 用于 .NET 4.5 版本 9.5.0 64 位。

我通过 c# 代码中止的方式是(它在每次迭代结束时运行一次):

    if (imapCon != null)
    {
        if (imapCon.IsLoggedIn())
        {
            imapCon.Logout();
        }

        if (imapCon.IsConnected())
        {
            imapCon.Disconnect();
        }

        imapCon.Dispose();
        imapCon = null;  
    }

从日志中,我得到: WSAECONNABORTED 已建立的连接被主机中的软件中止。

运行它的服务驻留在虚拟云环境中。

这是 Chilkat IMAP 连接的实现方式、云环境实现还是我的服务(使用 Chilkat 模块的应用程序)中的某个问题......?

以下是 Chilkat 日志:

日期:2014 年 5 月 6 日

奇尔卡特版本:9.5.0.38

解锁前缀:SNILIKIMAPMAIL

用户名:WIN-OCJD4A0985E:SYSTEM

架构:小端;64 位

语言:.NET 4.5 / x64

详细记录:0

列表邮箱:

bSubscribedOnly:0 参考:

邮箱: *

邮箱名称中的转义引号和反斜杠...

utf7EncodedMailboxPath: *

获取完整响应:

    WindowsError: An established connection was aborted by the software in your host machine.

    WindowsErrorCode: 0x2745

    numBytesRequested: 5

    Failed to receive data on the TCP socket

    Failed to read beginning of SSL/TLS record.

    Failed to read incoming handshake messages. (3)

    (leaveContext)

Client handshake failed. (3)

(leaveContext)

连接失败原因:0

(leaveContext) 失败原因:0

连接失败。

(leaveContext) 登录:

日期:2014 年 5 月 6 日

奇尔卡特版本:9.5.0.38

解锁前缀:SNILIKIMAPMAIL

用户名:WIN-OCJD4A0985E:SYSTEM

架构:小端;64 位

语言:.NET 4.5 / x64

详细记录:0

登录:**

连接类型:SSL/TLS

在套接字上发送错误 (1)

SocketError: WSAECONNABORTED 已建立的连接被主机中的软件中止。

有关更多信息,请参阅此 Chilkat 博客文章: http ://www.cknotes.com/?p=91

发送大小:90

发送 TLS 消息失败。

发送登录命令失败

失败的。

4

1 回答 1

1

如果 Chilkat 方法调用永远不会返回并使用 100% 的 CPU,那么您将无法获取 LastErrorText 的内容(这是您提供的 Chilkat 日志)。您拥有 LastErrorText 的事实表明 Chilkat 方法调用已返回,然后您的应用程序继续显示 LastErrorText。

我的猜测是您的应用程序有一个循环,其中涉及与 IMAP 邮件服务器通信的 Chilkat 方法调用通常会成功(与服务器通信花费正常的时间),但由于某种原因,方法调用开始立即返回失败状态。那时,我怀疑您的应用程序可能处于反复调用 Chilkat 方法的紧密循环中。100% CPU 利用率可能是由应用程序中的循环引起的,而不是由调用 Chilkat 方法中的代码引起的。

于 2014-05-29T00:27:00.803 回答