我一直在开发一个使用Office 2007 PIAs与Outlook 2007集成的C# (WinForms)应用程序。在我的开发环境中,UAC已禁用,所有功能都可以正常运行,但是我的测试环境是带有UAC启用的Vista 32位系统。
在测试环境中,Outlook默认以中等完整性级别运行(由用户启动)。我的应用程序需要高完整性级别(即在启动时显示UAC提示)。在这种情况下,从我的应用程序实例化Microsoft.Office.Interop.Outlook.Application类会失败,并出现CO_E_SERVER_EXEC_FAILURE(COMException,HRESULT = 0x80080005)错误。
我可以通过以下两种方式解决此问题:
1. 确保当我的应用程序实例化Application时,Outlook未在运行。这将强制Outlook以高完整性模式运行,因为启动它的进程也正在以高完整性运行。
2. 指示Outlook始终以管理员身份运行(兼容性选项卡)。
值得注意的是,Word和Excel PIAs没有出现此问题。
是否有任何方法可以解决这个问题?我的应用程序不能以低完整性运行,但有可能可以适应中等完整性级别-然而,我无法找到如何做到这一点。 .NET可执行文件能否以这种模式运行?
或者,是否有一些方法可以在存在不匹配的完整性级别时与Outlook通信?正如我所说,Word和Excel似乎没有这个问题。
在测试环境中,Outlook默认以中等完整性级别运行(由用户启动)。我的应用程序需要高完整性级别(即在启动时显示UAC提示)。在这种情况下,从我的应用程序实例化Microsoft.Office.Interop.Outlook.Application类会失败,并出现CO_E_SERVER_EXEC_FAILURE(COMException,HRESULT = 0x80080005)错误。
我可以通过以下两种方式解决此问题:
1. 确保当我的应用程序实例化Application时,Outlook未在运行。这将强制Outlook以高完整性模式运行,因为启动它的进程也正在以高完整性运行。
2. 指示Outlook始终以管理员身份运行(兼容性选项卡)。
值得注意的是,Word和Excel PIAs没有出现此问题。
是否有任何方法可以解决这个问题?我的应用程序不能以低完整性运行,但有可能可以适应中等完整性级别-然而,我无法找到如何做到这一点。 .NET可执行文件能否以这种模式运行?
或者,是否有一些方法可以在存在不匹配的完整性级别时与Outlook通信?正如我所说,Word和Excel似乎没有这个问题。