由于一段时间,我开发的vb.net应用程序停止为一些用户工作,通常在windows 10更新之后。它重新启动计算机一次或多次后又开始工作,有时需要几天才能启动。
当用户尝试重新安装它时,它已安装,但抛出以下错误:
为CLSID {X}的组件检索COM类工厂失败,原因是以下错误:80080005服务器执行失败(异常来自HRESULT: 0x80080005 (coe_server_exec_failure))
我认为它与项目中的Outlook互操作参考有关。
当outlook关闭时,我以管理员身份运行这个应用程序,我可以启动它,当outlook打开时,我不能这样做。
当outlook和应用程序都以admin权限打开时,它可以正常工作。
我明白Outlook和应用程序应该以相同的安全级别运行,但我没有以admin身份运行Outlook,所以我很困惑为什么我需要以admin身份运行应用程序。
目标CPU设置为"任何CPU",我应该尝试将其更改为"X86"吗?
Office版本为Office365 Pro
您需要在相同的安全上下文中运行两个应用程序。如果两者在同一用户下运行-一切都应该正常工作。
但是,以下错误可能表明Office应用程序是从服务自动执行的:
80080005服务器执行失败(Exception from HRESULT: 0x80080005 (coe_server_exec_failure)).
关于Office服务器端自动化的注意事项文章对此类错误作了如下说明:
微软目前不推荐,也不支持,从任何无人值守的、非交互式的客户端应用程序或组件(包括ASP、ASP、ASP、ASP、ASP和ASP)自动化Microsoft Office应用程序。. NET、DCOM和NT服务),因为在此环境中运行Office时,Office可能会表现出不稳定的行为和/或死锁。
如果您正在构建一个在服务器端上下文中运行的解决方案,那么您应该尝试使用那些对于无人值守执行是安全的组件。或者,您应该尝试找到至少允许部分代码在客户端运行的替代方案。如果从服务器端解决方案使用Office应用程序,则该应用程序将缺乏成功运行所需的许多功能。此外,您将在整个解决方案的稳定性方面承担风险。