在Windows 7中获取/创建Outlook应用程序
我正在尝试获取当前运行的Outlook版本或启动Outlook以防万一它没有运行 ,但我在Windows 7中获取或创建Outlook应用程序对象时遇到一些问题。我认为它与在Vista和7中限制使用的用户权限。我正在使用Outlook 2010。
编辑:仅在我已启动Outlook 2010实例时才会显示这些错误。 如果Outlook未启动,则应用程序可以顺利运行(它可以自行启动Outlook实例)。
如果有人可以告诉我如何正确获取Outlook应用程序版本,那将非常有用。
我正在运行的代码是一个长的try-catch块,它继续触发exception:
try { // create an application instance of Outlook oApp = new Microsoft.Office.Interop.Outlook.Application(); } catch(System.Exception ex) { try { // get Outlook in another way oApp = Marshal.GetActiveObject("Outlook.Application") as Microsoft.Office.Interop.Outlook.Application; } catch (System.Exception ex2) { // try some other way to get the object oApp = Activator.CreateInstance(Type.GetTypeFromProgID("Outlook.Application")) as Microsoft.Office.Interop.Outlook.Application; } }
该应用程序抛出以下exception:
当我尝试创建一个新的Outlook应用程序实例时:
由于以下错误,检索具有CLSID {0006F03A-0000-0000-C000-000000000046}的组件的COM类工厂失败:80080005。
当我尝试获取Outlook应用程序实例时:
操作不可用(HRESULTexception:0x800401E3(MK_E_UNAVAILABLE))
当我尝试通过Activator创建实例时
由于以下错误,检索具有CLSID {0006F03A-0000-0000-C000-000000000046}的组件的COM类工厂失败:80080005。
谢谢!
显然这些错误是由于我在不同的用户权限级别上运行Outlook和应用程序而触发的(其中一个作为管理员,另一个作为普通用户)。
- 在开始菜单中选择Run
- 键入dcomcnfg,然后单击“确定”
- “组件服务”窗口已打开。
- 展开节点组件服务 – > MyComputer – > DCOM配置。
- 右键单击应用程序(Outlook邮件附件)并选择属性。
- 必要时单击“身份”选项卡。
- 单击“交互式用户”,然后单击“确定”
看起来您的Office安装已损坏。
尝试以管理员身份重新运行安装程序来修复安装。
在我的情况下,Visual Studio以管理员身份运行导致问题。 当我像普通用户一样运行它时,我终于摆脱了这个错误。
确实,如果您从Visual Studio运行独立应用程序或从Visual Studio调试使用办公产品,那么您应该对两者(Visual Studio和Office产品)具有相同的访问级别,这也是此问题的原因之一但是我在网上看到很多人在服务中初始化outlook对象时遇到这个问题。 我希望解决这个问题的方法对我也有帮助。 请按照步骤进行操作。
-
转到命令提示符,键入以下内容并按Enter键。 这将打开组件服务:
mmc comexp.msc / 32
-
展开节点组件服务 – > MyComputer – > DCOM配置
-
现在找出您想要的应用程序(在本例中为Outlook Message Attachment)并右键单击该应用程序(如果您按照这些步骤操作,此问题可以解决所有Office应用程序的问题)并选择属性。
-
转到“标识”选项卡并选择“交互式用户”,然后按“确定 这应该可以解决您的问题。
交互式用户只是登录用户。 当您尝试通过服务访问办公产品时,访问级别必须相同,这就是您需要指定适当用户的原因。 如果要在服务器上运行服务而不登录它,则需要确保服务器具有用于运行服务的用户帐户以及运行此属性的属性中指定的办公产品(请查看“属性”对话框)。 如果要了解此对话框中提到的不同类型的用户帐户,请参阅以下Microsoft链接。
http://msdn.microsoft.com/en-us/library/windows/desktop/ms692541%28v=vs.85%29.aspx