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 )
我有一个应用程序 (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 )