Вопрос

Я пытаюсь получить текущую управляемую версию Outlook или запустить Outlook на случай, если он не работает, но у меня есть некоторые проблемы в получении или создании объекта Application Outlook в Windows 7. Я думаю, что он имеет что-то делать с привилигами пользователя, которые являются ограничительными в Vista и 7. Я работаю с Outlook 2010.

редактировать: Эти ошибки появляются только в том случае, если у меня уже запустите экземпляр Outlook 2010. Если Outlook не запущен, приложение может работать гладко (он может запустить экземпляр Outlook сам по себе).

Если кто-то может сказать мне, как правильно получить версию Autlook Application, которая была бы действительно полезной.

Код, который я работаю, - это длительный блок 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:

Восстановление завод COM-класса для компонента с CLSID {0006F03A-0000-0000-C000-000000000046} не удалось из-за следующей ошибки: 80080005.

Когда я пытаюсь получить экземпляр приложения Outlook:

Операция недоступна (исключение из HResult: 0x800401e3 (mk_e_unavailabilab))

Когда я пытаюсь создать экземпляр через активатор

Восстановление завод COM-класса для компонента с CLSID {0006F03A-0000-0000-C000-000000000046} не удалось из-за следующей ошибки: 80080005.

Спасибо!

Это было полезно?

Решение

По-видимому, эти ошибки были вызваны, потому что я работал Outlook и приложение на разных уровнях разрешений пользователей (один из них как администратор, а другой - обычный пользователь).

Другие советы

  1. В начале меню выберите Run
  2. Введите dcomcnfg и нажмите ОК
  3. Открытие окна служб компонентов открывается.
  4. Разверните Услуги компонентов узлов -> MyComputer -> Config Config.
  5. Щелкните правой кнопкой мыши на приложении (вложение Outlook Message) и выберите свойства.
  6. Нажмите на вкладку Identity, что угодно.
  7. Нажмите на «Интерактивный пользователь», затем хорошо

Похоже, ваша установка Office станет повреждена.

Попробуйте отремонтировать установку путем настройки Rerunning AS администратора.

Это правда, что если вы используете автономное приложение из Visual Studio или отладки из Visual Studio, которые используют офисные продукты, вы должны иметь тот же уровень доступа для как (Visual Studio, так и для офисных продуктов), и это одна из причин, по которой этот вопрос Происходит, но я вижу в Интернете, что у многих людей есть этот вопрос во время инициализации объекта Outlook в сервисе. Я надеюсь, что решил проблему для меня поможет другим. Пожалуйста, следуйте по шагам.

  1. Перейдите в командную строку введите следующее и нажмите Enter. Это открывает составные услуги:

    MMC COMEXP.MSC / 32

enter image description here

enter image description here

  1. Разверните Услуги компонентов узлов -> MyComputer -> Config Config

  2. Теперь выясните желаемое приложение (в этом случае, Outlook Message Attactcation) и щелкните правой кнопкой мыши на приложении (если вы выполните следующие действия, эта проблема, связанная с всеми офисными приложениями, может быть разрешена) и выберите свойства.

  3. Перейдите на вкладку Identity и выберите интерактивный пользователь и нажмите OK. Это должно решить вашу проблему.

enter image description here

Интерактивный пользователь Ничего, кроме зарегистрированного пользователя. Когда вы пытаетесь получить доступ к офисным продуктам через сервис, уровень доступа должен быть таким же, как причина, по которой вам нужно указать правильный пользователь. Если вы хотите запустить сервис на сервере без регистрации на нее, вам необходимо убедиться, что сервер имеет учетную запись пользователя, которая будет использоваться для запуска службы, а также под управлением офисных продуктов, как указано в свойствах, как этот пользователь (пожалуйста Посмотрите на диалоговое окно свойств). Если вы хотите узнать о различных типах учетных записей пользователей, упомянутых в этом диалоговом окне, см. Следующую ссылку Microsoft.

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

В моем случае это была Visual Studio Ran, когда администратор, вызывающий проблему. Когда я запустил его как обычный пользователь, я наконец избавился от этой ошибки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top