注解-CreateMIMEEntity不释放.NSF文件的控件

问题描述 投票:1回答:1

我正在使用Interop.Domino处理.NSF文件。为了生成html mime实体,我使用了nnote,但是在某些情况下无法生成它,因此在这种情况下,我将RTFTEXT / PLIAN TEXT作为输出。因此我为此使用了CreateMIMEEntity。

NotesMIMEEntity MIMEBody = NoteDocument.CreateMIMEEntity(“ Body”);

它可以工作,但是它可以控制数据库(.nsf文件),该文件被标记为已在另一个进程中使用。通过故障排除,很明显上述语句可以控制。我已经释放了所有分配给它的Note对象。问题仍然存在。有使用或释放​​它的正确方法吗?

lotus interop-domino
1个回答
0
投票

COM类下的Notes核心DLL使数据库在缓存中保持打开状态。我知道要关闭它们的唯一方法是终止加载DLL的进程。一种选择是使用COM API设计代码,以便它调度短期工作进程以打开数据库,进行工作并终止。是的,它很丑陋而且很慢,但是如果您需要长期运行的服务,并且使用的是COM API而不是Notes C API,那是最好的方法。

无论如何,如果通过Domino服务器打开数据库,则缓存的打开的数据库不应引起共享冲突。但是,如果在打开数据库时使用“”代替服务器名称,那将是一个问题-甚至在短期运行的工作进程中也不应该这样做。

© www.soinside.com 2019 - 2024. All rights reserved.