Outlook Redemption在某些机器上无法登录。

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

有谁知道为什么救赎无法成功登录?

我正在做的是删除新创建的PST中的默认文件夹。这不是任何内部机器的问题,但在客户的机器上,他们得到以下错误。

异常源:Redemption.RDOSessionException。 Redemption.RDOSessionException类型: System.Runtime.InteropServices.COMExceptionException Message: Not logged on. 请先登录Exception目标站点。登出

public static void DeleteStoreFolders(string sStorePath)
        {
            RDOSession session = null;
            RDOPstStore RDOstore = null;
            try
            {
                _logger.LogDebug("init RDOSession");                
                session = RedemptionLoader.new_RDOSession();
                _logger.LogDebug("RDOSession created");
                _logger.LogDebug("Logging into store: " + sStorePath);
                RDOstore = session.LogonPstStore(sStorePath);
                _logger.LogDebug("Logged into store: " + sStorePath);
                foreach (RDOFolder folder in RDOstore.IPMRootFolder.Folders)
                {
                    _logger.LogDebug("Deleting folder " + folder);
                    folder.Delete();
                    _logger.LogDebug("Folder " + folder + " deleted");
                    if (folder != null)
                        Marshal.FinalReleaseComObject(folder);
                }
            }
            catch (Exception ex)
            {
                _logger.LogError("Unable to delete default folders. " + ex.StackTrace);
            }
            finally
            {
                if (session != null)
                {
                    session.Logoff();
                    Marshal.FinalReleaseComObject(session);
                }
                if (RDOstore != null)
                    Marshal.FinalReleaseComObject(RDOstore);
            }
        }
c# outlook outlook-redemption
1个回答
0
投票

这将是伟大的,除了异常细节,看到问题机器上生成的日志。

此外,我建议更换 FinalReleaseComObject 方法与 ReleaseComObject 的。的。Marshal.FinalReleaseComObject 方法通过将Runtime Callable Wrapper (RCW)的引用计数设置为0来释放所有引用。 这其实不是一个好主意。这个 Marshal.ReleaseComObject 方法减少与指定COM对象相关联的Runtime Callable Wrapper(RCW)的引用计数。所以,如果你增加了引用计数器,你需要相应地减少它,而不是将它设为零!如果你增加了引用计数器,你需要将它相应地减少,而不是将它设为零。

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