Windows 周年更新 (1607) & ComException

Windows Anniversary Update (1607) & ComException

我有一个应用程序 (C#),它使用 ComInterop 从第 3 方应用程序 (Corel Draw x8) 操作和打印文档。

更新到 Windows 1607(周年更新)后,创建我的对象 (cdr = new CorelDRAW.Application();) 或下一行(隐藏 CorelDraw 的 window)时,事情会立即停止一个错误:

System.Runtime.InteropServices.COMException

App busy.

(Ausnahme von HRESULT: 0x8001010A (RPC_E_SERVERCALL_RETRYLATER))

或更高版本

HRESULT: 0x80010105 (RPC_E_SERVERFAULT)

在 Windows 7 下具有相同版本 CorelDraw x8 的相同应用程序继续正常工作,并且在卸载 Windows 10 周年更新后,我的应用程序再次按预期工作。

那么,有人知道如何解决这个问题吗?它是已知的吗?欢迎任何帮助:) !

我的 C# 应用程序也有类似的问题,它会创建复杂的 Excel 文件。周年更新后,应用程序抛出错误消息:

HRESULT: 0x80010105 (RPC_E_SERVERFAULT)

为了定位错误发生的位置,我在调试模式下启动了应用程序。在此模式下,您可以 运行 通过按 F11 逐行查看代码。但是在这种模式下,错误没有发生。因此,我的想法是应用程序通常 运行 很快,这就是 Excel 的通信问题的原因。

所以我完成了关键部分的代码,其中应用程序绘制边框或使用 Thread.Sleep(100)-instructions 更改背景颜色。每行之后:

[...]

Thread.Sleep(100);

wSheet.get_Range(...).Style.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;

Thread.Sleep(100);    

wSheet.get_Range(...).BorderAround(Excel.XlLineStyle.xlContinuous, Excel.XlBorderWeight.xlHairline);

Thread.Sleep(100); 

wSheet.get_Range(...).Cells.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.White);

[...]

有效!不知道为什么,但它确实有效。

希望我能帮上忙,抱歉我的英语不好。 ;)

此致,

马里奥

我在 Windows 10 周年更新中遇到了一个非常相似的问题。 我的程序尝试使用 COM 打开 Excel 对象。

System.Runtime.InteropServices.COMException: Error from Server (HRESULT   Exception:0x80010105 (RPC_E_SERVERFAULT))
 at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
 at System.Dynamic.ComRuntimeHelpers.CheckThrowException(Int32 hresult, ExcepInfo& excepInfo, UInt32 argErr, String message)
 at CallSite.Target(Closure , CallSite , ComObject , String , Object , Object , Object , Object , Object , Object , Object , Object , Object , Object , Object , Object , Object , Object )
 at CallSite.Target(Closure , CallSite , Object , String , Object , Object , Object , Object , Object , Object , Object , Object , Object , Object , Object , Object , Object , Object )