我尝试访问某些共享邮箱("打开这些其他邮箱"列出)但我遇到了一种拒绝访问的" #34 ;. 说清楚我的意思......我写了这段代码:
IList<Store> lsStores = Application.Session.Stores.Cast<Store>().Where(c => c.ExchangeStoreType == OlExchangeStoreType.olExchangeMailbox).ToList();
但是我有这个错误(在Log文件夹中):
System.Runtime.InteropServices.COMException(0xAD54011D):异常 来自HRESULT:0xAD54011D 在System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32) errorCode,IntPtr errorInfo) 在System.Runtime.InteropServices.CustomMarshalers.EnumeratorViewOfEnumVariant.MoveNext() 在System.Linq.Enumerable.d__95
1.MoveNext() at System.Linq.Enumerable.WhereEnumerableIterator
1.MoveNext() 在System.Collections.Generic.List1..ctor(IEnumerable
1个集合) 在System.Linq.Enumerable.ToList [TSource](IEnumerable`1 source) at Detatchatore.Detachatore.btnAvvia_Click(Object sender,EventArgs e)位于C:\ Users \ Me \ Project \ Form1.cs:第52行
在我的个人电脑中,这个错误并没有显示出来,我的同事也没有这个问题。但是当我将应用程序安装到操作员pc(应用程序必须在他的电脑上工作)时,我有这个例外。 谢谢,对不起我的英语不好。
答案 0 :(得分:0)
首先,我建议避免使用Outlook对象进行任何LINQ查询。此外,我建议及时释放它们,即尽快释放它们。您可能会发现以下链接很有用:
Systematically Releasing Objects - 与Outlook相关,但相同的原则可以应用于任何其他Office应用程序。
When to release COM objects in Office add-ins developed in .NET
其次,您需要打破属性或方法调用链,并在单独的代码行上声明每个属性或方法。因此,如果代码失败,您将能够找到有问题的那个。