使用 Redemption API 创建 pst 文件后如何释放它?
How to release pst file after creating it using Redemption API?
我只是将消息文件列表转换为组合的 pst。下面是我的代码:
RDOSession pstSession = new RDOSession();
RDOPstStore store = null;
var pstPath = "D:\test\combined.pst";
store = pstSession.LogonPstStore(pstPath, 1, "combinedPST");
RDOMail rdo_Mail =
pstSession.GetMessageFromMsgFile(dr["FullPathOfMessageFile"].ToString());
rdo_Mail.CopyTo(store.IPMRootFolder);
rdo_Mail.Save();
store.Save();
pstSession.Logoff();
这是一个 windows 表单应用程序。 运行 上面的代码在测试文件夹中创建了一个文件 combined.pst。当我尝试在outlook中打开这个pst时,outlook提示这个pst当前正在被另一个进程使用。在我从应用程序中关闭我的胜利后,可以加载 pst。
我认为赎回 API 正在锁定创建的 PST。我错过了什么?我还需要处理什么其他对象?
出于性能原因,PST 提供程序会保留引用和加载 PST 文件 30 分钟。或者直到 PST 提供程序 dll 本身被卸载(例如,当主机进程终止时)。
您可能想使用 http://support.microsoft.com/Default.aspx?kbid=222328
中提到的注册表项
创建控制台应用程序 (exe) 并在其中添加创建 pst 的逻辑。稍后执行此 exe,在您的应用程序中创建一个进程。这样生成的pst没有被锁定,可以移动,修改,删除文件。
我只是将消息文件列表转换为组合的 pst。下面是我的代码:
RDOSession pstSession = new RDOSession();
RDOPstStore store = null;
var pstPath = "D:\test\combined.pst";
store = pstSession.LogonPstStore(pstPath, 1, "combinedPST");
RDOMail rdo_Mail =
pstSession.GetMessageFromMsgFile(dr["FullPathOfMessageFile"].ToString());
rdo_Mail.CopyTo(store.IPMRootFolder);
rdo_Mail.Save();
store.Save();
pstSession.Logoff();
这是一个 windows 表单应用程序。 运行 上面的代码在测试文件夹中创建了一个文件 combined.pst。当我尝试在outlook中打开这个pst时,outlook提示这个pst当前正在被另一个进程使用。在我从应用程序中关闭我的胜利后,可以加载 pst。 我认为赎回 API 正在锁定创建的 PST。我错过了什么?我还需要处理什么其他对象?
出于性能原因,PST 提供程序会保留引用和加载 PST 文件 30 分钟。或者直到 PST 提供程序 dll 本身被卸载(例如,当主机进程终止时)。 您可能想使用 http://support.microsoft.com/Default.aspx?kbid=222328
中提到的注册表项创建控制台应用程序 (exe) 并在其中添加创建 pst 的逻辑。稍后执行此 exe,在您的应用程序中创建一个进程。这样生成的pst没有被锁定,可以移动,修改,删除文件。