Windows服务100%CPU与C#IMAP Chilkat

时间:2014-05-28 08:45:23

标签: c# sockets .net-4.5 imap chilkat-email

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

我使用Chilkat IAMP for .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日志:

  

DllDate:2014年5月6日

     

ChilkatVersion:9.5.0.38

     

UnlockPrefix:SNILIKIMAPMAIL

     

用户名:WIN-OCJD4A0985E:SYSTEM

     

建筑:Little Endian; 64位

     

语言:.NET 4.5 / x64

     

详细记录:0

     

listMailboxes:

     

bSubscribedOnly:0参考:

     

邮箱:*

     

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

     

utf7EncodedMailboxPath:*

     

getCompleteResponse:

    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)
     

ConnectFailReason:0

     

(leaveContext)failReason:0

     

连接失败。

     

(leaveContext)登录:

     

DllDate:2014年5月6日

     

ChilkatVersion:9.5.0.38

     

UnlockPrefix:SNILIKIMAPMAIL

     

用户名:WIN-OCJD4A0985E:SYSTEM

     

建筑:Little Endian; 64位

     

语言:.NET 4.5 / x64

     

详细记录:0

     

登录: **

     

ConnectionType:SSL / TLS

     

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

     

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

     

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

     

send_size:90

     

无法发送TLS消息。

     

无法发送LOGIN命令

     

失败。

1 个答案:

答案 0 :(得分:1)

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

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

相关问题