Служба Windows 100% ЦП с C# IMAP Chilkat

Служба Chilkat IMAP застряла на 100% ЦП через несколько дней, когда служба Windows, которая ее использует, работает нормально. Это воспроизводится каждые несколько дней (3-7 дней).

Я использую Chilkat IAMP для.NET 4.5 версии 9.5.0 64-bit.

Я прерываю код C# (он запускается один раз на каждом конце итерации):

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

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

        imapCon.Dispose();
        imapCon = null;  
    }

Из журналов я получаю: WSAECONNABORTED Установленное соединение было прервано программным обеспечением на вашем хост-компьютере.

Служба, которая его запускает, находится в виртуальной облачной среде.

Это проблема с тем, как реализовано соединение Chilkat IMAP, реализация облачной среды или что-то из моего сервиса (приложение, которое использует модуль Chilkat)...?

Ниже приведены журналы Чилкат:

DllDate: 6 мая 2014

Версия Chilkat: 9.5.0.38

Разблокировать Префикс: SNILIKIMAPMAIL

Имя пользователя: WIN-OCJD4A0985E: СИСТЕМА

Архитектура: Little Endian; 64-битный

Язык:.NET 4.5 / x64

VerboseLogging: 0

listMailboxes:

bSubscribeedOnly: 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

(покинуть контекст) failReason: 0

сбой соединения.

(оставить комментарий) Логин:

DllDate: 6 мая 2014

Версия Chilkat: 9.5.0.38

Разблокировать Префикс: SNILIKIMAPMAIL

Имя пользователя: WIN-OCJD4A0985E: СИСТЕМА

Архитектура: Little Endian; 64-битный

Язык:.NET 4.5 / x64

VerboseLogging: 0

Логин: **

Тип соединения: SSL/TLS

Ошибка отправки по сокету (1)

SocketError: WSAECONNABORTED Установленное соединение было прервано программным обеспечением на вашем хост-компьютере.

Для получения дополнительной информации см. Это сообщение в блоге Chilkat: http://www.cknotes.com/?p=91

send_size: 90

Не удалось отправить сообщение TLS.

Не удалось отправить команду входа

Не удалось.

1 ответ

Решение

Если вызов метода Chilkat никогда не возвращается и использует 100% ЦП, вы не сможете получить содержимое LastErrorText (который вы указали в журнале Chilkat). Тот факт, что у вас есть LastErrorText, указывает на то, что был возвращен вызов метода Chilkat, а затем ваше приложение перешло к отображению LastErrorText.

Я предполагаю, что в вашем приложении есть цикл, в котором обычно происходит успешное выполнение вызова метода Chilkat, связанного с обменом данными с почтовым сервером IMAP (при обычном количестве времени, затрачиваемого на общение с сервером), но затем по какой-то причине вызов метода начинает немедленно возвращаться с статус не пройден В этот момент я подозреваю, что ваше приложение, вероятно, находится в узком цикле, вызывая метод Chilkat снова и снова. 100% загрузка ЦП, вероятно, вызвана циклом в вашем приложении, а НЕ кодом в вызове метода Chilkat.

Другие вопросы по тегам