17

我正在尝试获取当前正在运行的 Outlook 版本或启动 Outlook 以防它未运行,但我在 Windows 7 中获取或创建 Outlook 应用程序对象时遇到了一些问题。我认为这与在 Vista 和 7 中受限的用户权限。我正在使用 Outlook 2010。

编辑:仅当我已经启动了 Outlook 2010 实例时才会出现这些错误。如果 Outlook 没有启动,应用程序可以顺利运行(它可以自己启动一个 Outlook 实例)。

如果有人能告诉我如何正确获取 Outlook 应用程序版本,那将非常有帮助。

我正在运行的代码是一个很长的 try-catch 块,它不断触发异常:


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;
  }
}

该应用程序向我抛出以下异常:

当我尝试创建一个新的 Outlook 应用程序实例时:

由于以下错误,检索具有 CLSID {0006F03A-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败:80080005。

当我尝试获取 Outlook 应用实例时:

操作不可用(HRESULT 异常:0x800401E3 (MK_E_UNAVAILABLE))

当我尝试通过激活器创建实例时

由于以下错误,检索具有 CLSID {0006F03A-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败:80080005。

谢谢!

4

5 回答 5

32

显然,这些错误是因为我在不同的用户权限级别(其中一个是管理员,另一个是普通用户)上运行 Outlook 和应用程序而触发的。

于 2010-09-23T15:31:06.270 回答
4
  1. 在开始菜单中选择运行
  2. 键入 dcomcnfg 并单击确定
  3. 组件服务窗口打开。
  4. 展开节点 Component Services -> MyComputer -> DCOM Config 。
  5. 右键单击应用程序(Outlook 邮件附件)并选择属性。
  6. 如有必要,单击身份选项卡。
  7. 点击“交互式用户”然后确定
于 2012-09-30T09:52:14.663 回答
2

确实,如果您从 Visual Studio 运行独立应用程序或从使用 Office 产品的 Visual Studio 调试,您应该对两者(Visual Studio 和 Office 产品)具有相同的访问级别,这就是导致此问题的原因之一发生但我在网上看到这么多人在服务中初始化 Outlook 对象时遇到此问题。我希望为我解决问题的方法也能帮助其他人。请按照步骤操作。

  1. 转到命令提示符,键入以下内容并按 Enter。这将打开组件服务:

    mmc comexp.msc /32

在此处输入图像描述

在此处输入图像描述

  1. 展开节点 Component Services -> MyComputer -> DCOM Config

  2. 现在找到您想要的应用程序(在本例中为 Outlook 邮件附件)并右键单击该应用程序(如果您按照这些步骤操作,则可以解决与所有办公应用程序相关的问题)并选择属性。

  3. 转到身份选项卡并选择交互式用户,然后按确定。这应该可以解决您的问题。

在此处输入图像描述

交互式用户只不过是登录用户。当您尝试通过服务访问办公产品时,访问级别必须相同,这就是您需要指定正确用户的原因。如果您想在不登录服务器的情况下在服务器上运行该服务,您需要确保该服务器有一个用户帐户,该用户帐户将用于运行该服务以及运行“作为该用户的属性”中指定的办公产品(请查看属性对话框)。如果您想了解此对话框中提到的不同类型的用户帐户,请参阅以下 Microsoft 链接。

http://msdn.microsoft.com/en-us/library/windows/desktop/ms692541%28v=vs.85%29.aspx

于 2014-12-31T19:27:51.353 回答
1

看起来您的 Office 安装已损坏。

尝试通过以管理员身份重新运行安装程序来修复安装。

于 2010-09-20T10:55:32.383 回答
0

在我的情况下,它是以管理员身份运行的 Visual Studio 导致了这个问题。当我以普通用户身份运行它时,我终于摆脱了这个错误。

于 2014-04-07T09:18:50.647 回答