通过Redemption.dll读取公用文件夹时,IRDOSession.GetFolderFromPath引发MAPI_E_FAILONEPROVIDER错误

时间:2019-05-17 07:16:41

标签: c# outlook outlook-redemption tivoli-work-scheduler

我要升级一个控制台应用程序,即“读取Outlook公用文件夹”。 当我手动运行时,它工作正常。但是在通过IBM Tivoli Workload Scheduler运行时会引发异常。

因此尝试提供收件箱文件夹名称而不是公用文件夹名称。然后在Scheduler中也可以正常工作。所以只有我尝试单独读取公用文件夹时遇到错误

  

IMAPISession :: OpenMsgStore中的错误:MAPI_E_FAILONEPROVIDER ulVersion:   0错误:登录Microsoft Exchange的尝试失败。   组件:Microsoft Exchange信息存储ulLowLevelError:1144   ulContext:1298

var session = new RDOSession();
session.Logon(string.Empty, string.Empty, false, true, null, null);
session.Stores.FindExchangePublicFoldersStore();
var publicFolder = session.GetFolderFromPath(folderPath);

公用文件夹:

  
    

\\公用文件夹-example@domain.com \所有公用文件夹\ XXX     文件夹\ YYY /对象和数据\ ZZZ \

  
     
      
  • 不起作用
  •   

收件箱文件夹:

  
    

\\ example@domain.com \ Inbox

  
     
      
  • 工作
  •   

编辑:添加了日志并了解Exchange连接模式的变化

  

手动运行ExchangeConnectionMode:olCachedConnectedFull

     

计划程序运行ExchangeConnectionMode:olOnline

注意:我们正在使用 Redemption.dll-5.10

更新: 使用Redemption.dll-5.2和Outlook 2003与Exchange Server 2010的旧服务器。它在TWS上也可以正常工作。 新服务器使用Redemption.dll-5.10和Outlook 2016与Exchange Server2010。但不适用于TWS。

2 个答案:

答案 0 :(得分:0)

公共文件夹存储有可能没有被缓存,因此当您在服务(调度程序)下登录时,存储提供程序没有凭据来打开存储。

答案 1 :(得分:0)

对于此问题的修复,我们需要做两件事:

  1. 点击交易平台作业中的交互式选项
  2. 购买最新Redemption.dll 的可分发版本并使用