2017-07-26 47 views
0

我有一个似乎适用于大多数人的一些非常基本的代码,但是有一个抛出当它运行的代码,这些几行此HRESULT码的至少一个工作站:的Outlook互操作异常HRESULT:0xCA140115

Outlook.Application _OutlookInstance = new Outlook.Application(); 
Outlook.Stores stores = _OutlookInstance.Session.Stores; 

任何想法什么是HRESULT代码0xCA140115是什么意思?我找不到它的任何地方MSDN ...

遇到该问题是在远程呼叫中心位置的工作站,所以我不能做任何直接的测试/调试,或容易看到的是一个专门为不同这台工作站与其他工作站。我可以想象在同一个呼叫中心可能会有更多的工作站可能出现这个错误,但是这个代码仍然处于测试阶段。

+0

什么属性或方法准确地引发异常?何时何地运行上面列出的代码? –

+0

这是一个测试应用程序 - 一个启动并立即运行这两行代码的Winforms应用程序(其余代码因为抛出异常而未命中)。目前很难说哪个特定的属性或方法会触发它,因为我无法很容易地进行测试(只有远程用户可以复制到目前为止,所以我必须要测试它的可用性) – jhilgeman

+0

Outlook版本的安装在机器上?它是否是Click2Run版本? –

回答

0

对不起慢了,但我可以通过测试的几个迭代来获得并找出问题了。首先,我原来的帖子是不正确的。码流使它看起来像在那些2个初始行错误是怎么回事,但它实际上是发生了一点后,当我是通过商店循环,就像这样:

Outlook.Stores stores = _OutlookInstance.Session.Stores; 
foreach(Outlook.Store store in stores) // <----- THIS LINE 
{ 
    ... 
} 

每次用户运行此,他会得到不同的HRESULT错误代码:

0xCA140115

0xAF64011D

0xC1F4011D

0xC8340 11D

唯一一致的因素是中间的“4011”。

当我调升日志,我可以看到,用户有18个邮箱和foreach()循环渐渐通过前3,但未能在第4位。第4个邮箱是与另一个邮箱关联的“公共文件夹”存储,与另一个邮箱以不同方式添加(与它是需要不同身份验证的Outlook 365邮箱有关)。

所以基本上它结束了,任何企图连碰特定的邮箱/店(包括“存储”变量被设置)会导致在COM例外。

我能解决它由通过数字索引通过存储循环,这样的“存储”设置为我的try/catch块中,像这样:

for(int i = 0; i < stores.Count; i++) 
{ 
    try 
    { 
    Outlook.Store store = stores[i]; 
    ... 
    } 
    catch(Exception) 
    { 
    ... 
    } 
} 

现在,当循环打的特别的商店,我可以告诉它是Outlook说服务器不可用,并且该商店是一个在线商店,所以商店无法访问。

我还不能确定,为什么错误代码的每一次改变,但你有它。

相关问题