我有一个应用程序(C#),它使用ComInterop来操作和打印来自第三方应用程序(Corel Draw x8)的文档。
更新到Windows 1607(周年纪念更新)后,创建对象(cdr = new CorelDRAW.Application();
)或使用下一行(隐藏CorelDraw' s窗口)时出现错误的事情会立即停止工作:
System.Runtime.InteropServices.COMException
App忙。
(Ausnahme von HRESULT:0x8001010A(RPC_E_SERVERCALL_RETRYLATER))
或更晚
HRESULT:0x80010105(RPC_E_SERVERFAULT)
在Windows 7下使用相同版本的CorelDraw x8的相同应用程序继续正常工作,卸载Windows 10周年更新后,我的应用程序再次按预期工作。
那么,有没有人知道如何解决这个问题?它已经知道了吗?欢迎任何帮助:)!
答案 0 :(得分:1)
我的C#-Application遇到了类似的问题,它会创建复杂的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);
[...]
有效!不是为什么,但它有效。
希望我能帮助并抱歉我的英语不好。 ;)
此致
马里奥
答案 1 :(得分:0)
我在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 )