2015-11-05 3 views
2

После поиска в Интернете без успеха, вот мой вопрос.COMException (0x800401E3): Операция недоступна (Исключение из HRESULT: 0x800401E3 (MK_E_UNAVAILABLE)) с запланированным заданием

У меня есть задача, которую я хочу запланировать, чтобы получить вложение электронной почты из Outlook и извлечь данные. Он отлично работает, когда я запускаю задачу вручную, но всякий раз, когда я пытаюсь запустить его через запланированное задание он терпит неудачу с ошибкой:

COMException (0x800401E3): Операция недоступна (Исключение из HRESULT: 0x800401E3 (MK_E_UNAVAILABLE))

Это происходит, когда программа пытается восстановить или создать экземпляр Outlook, как следует:

private Application GetApplicationObject() 
    { 

     Application application = null; 

     if (Process.GetProcessesByName("OUTLOOK").Any()) 
     { 
      application = Marshal.GetActiveObject("Outlook.Application") as Application; 
     } 
     else 
     { 
      application = new Application(); 
     } 
     return application; 
    } 

Я попытался несколько способов (пакетный файл .exe файл, параметр из программы), но все они потерпели неудачу. Он был запущен с той же учетной записью, которая использовалась для запуска задачи вручную.

Может кто-нибудь мне помочь? Любая помощь будет оценена! Приветствия!

+0

А где исключение выбрано? – Richard

+0

Попробуйте запустить Outlook и VS в качестве администратора. Это сработало для меня. Надеюсь это поможет. –

+0

Возможный дубликат [Операция недоступна (Исключение из HRESULT: 0x800401E3 (MK \ _E \ _UNAVAILABLE)) при работе через службу Windows?] (Https://stackoverflow.com/questions/37589935/operation-unavailable-exception-from-hresult -0x800401e3-mk-e-unavailable-wh) – Gokul

ответ

2

Microsoft в настоящее время не рекомендуется, и не поддерживает, автоматизации приложений Microsoft Office из любого без присмотра, не интерактивного клиентского приложения или компоненты (включая ASP, ASP.NET, DCOM и NT Services), потому что Office может проявлять нестабильное поведение и/или тупик, когда Office запущен в этой среде.

Если вы создаете решение, которое выполняется в контексте на стороне сервера, вы должны попытаться использовать компоненты, которые были сделаны безопасными для автоматического выполнения. Или вы должны попытаться найти альтернативы, которые позволяют хотя бы часть кода запускать клиентскую сторону. Если вы используете приложение Office из серверного решения, для успешного выполнения приложения не будет достаточного количества необходимых возможностей. Кроме того, вы рискуете стабильностью своего общего решения. Подробнее об этом читайте в статье Considerations for server-side Automation of Office.

Вы можете использовать API низкого уровня (или любые другие сторонние обертки) - расширенный MAPI, на котором основан Outlook. Или EWS в случае профилей Exchange, см. EWS Managed API, EWS, and web services in Exchange для получения дополнительной информации.

+0

Спасибо, я попробую один из них! –

0

Просто пара мыслей:

  1. Это может быть проблемой GUI. Согласно this answer, задачи графического интерфейса не могут выполняться из запланированных задач. Могут быть обходные пути, но я не знаю об этом.

  2. Это может быть проблема контекста или разрешения. Какие параметры вы настраиваете в задаче и являются ли они такими же, как при запуске задачи за пределами планировщика задач?

+0

Не ясно из-за проблемы с графическим интерфейсом. Ответ @Eugene - причина. – Gokul

 Смежные вопросы

  • Нет связанных вопросов^_^