Lotus Notes - CreateMIMEEntity не освобождает управление файлом .NSF - PullRequest
1 голос
/ 28 мая 2020

Я использую Interop.Domino для работы с файлом .NSF. Чтобы сгенерировать объект mime html, я использовал nnote, но в некоторых случаях он не смог его сгенерировать, поэтому в этом случае я взял RTFTEXT / PLIAN TEXT в качестве вывода. поэтому я использовал для этого CreateMIMEEntity.

NotesMIMEEntity MIMEBody = NoteDocument.CreateMIMEEntity ("Body");

Он работает, но контролирует базу данных (.nsf file), файл помечается как используемый в другом процессе. При устранении неполадок становится ясно, что указанное выше утверждение имеет контроль. Я освободил все назначенные ему объекты Note, но проблема осталась прежней. Есть ли способ использовать или выпустить его?

1 Ответ

0 голосов
/ 28 мая 2020

Базовые библиотеки DLL Notes, находящиеся под классами COM, поддерживают открытые базы данных в кэше. Единственный известный мне способ закрыть их - это завершить процесс, загрузивший библиотеки DLL. Один из вариантов - разработать код с использованием COM API, чтобы он отправлял краткосрочные рабочие процессы для открытия базы данных, выполнения работы и завершения. Да, это уродливо и медленно, но если вам нужна долговременная служба и вы используете COM API вместо Notes C API, это лучший способ.

В любом случае открытые кэшированные базы данных не должны вызывать нарушения совместного использования, если вы открываете базу данных через сервер Domino. Однако, если вы используете "" вместо имени сервера при открытии базы данных, это будет проблемой - и вам даже не следует делать это в коротко запущенных рабочих процессах.

...