我有用 C# 创建的 Outlook MAPI 测试套件,它使用 Redemption。
在 try{} catch{} 块下面执行它会抛出下面的异常。知道需要做什么吗?
try
{
_RDOSession = new Redemption.RDOSessionClass();
_RDOSession.MAPIOBJECT = OutlookConnection.Instance.nameSpace.MAPIOBJECT;
_MAPIUtils = new MAPIUtils();
}
catch (System.Exception e)
{
throw new HarnessException("OutlookRedemption threw exception for _RDOSession", e);
}
.
.
.
.
try
{
_OutlookApplication = new Microsoft.Office.Interop.Outlook.ApplicationClass();
}
catch (System.Exception e)
{
throw new HarnessException("OutlookConnection threw exception for _OutlookApplication", e);
}
它按顺序显示以下错误:
OutlookConnection 引发 _OutlookApplication 异常 SyncHarness.HarnessException:OutlookConnection 抛出异常 _OutlookApplication ---> System.Runtime.InteropServices.COMException (0x80080005):由于以下错误,检索 CLSID 为 {0006F03A-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败:80080005。 在 SyncHarness.OutlookConnection..ctor()
OutlookRedemption 引发了 _RDOSession SyncHarness.HarnessException 异常:OutlookRedemption 引发了 _RDOSession 异常 ---> System.ComponentModel.Win32Exception:句柄在 System.Drawing.Graphics.CopyFromScreen 处无效(Int32 sourceX、Int32 sourceY、Int32 destinationX、Int32 destinationY、大小 blockRegionSize, CopyPixelOperation copyPixelOperation)
修改注册表但没有帮助。
0x80080005
是 CO_E_SERVER_EXEC_FAILURE
,如果您的应用程序和 Outlook 的安全上下文不同,很可能会发生这种情况。如果任一应用程序以提升的权限运行(以管理员身份运行),请确保两个应用程序都运行,或者都不运行。