2015-10-19 8 views
0

Я пытаюсь автоматизировать создание электронной почты Outlook из приложения Silverlight. Вот код, который у меня есть:Не удалось создать экземпляр объекта для указанного ProgID (Outlook.Application)

dynamic fso = AutomationFactory.CreateObject("Scripting.FileSystemObject"); 
dynamic cd = AutomationFactory.CreateObject("WIA.CommonDialog"); 
dynamic outlook = AutomationFactory.CreateObject("Outlook.Application"); 

Третья строка с ошибкой в ​​теме. Я нашел аналогичный пост: Failed to create an object instance for the specified ProgID (WIA.CommonDialog)

Итак, у меня есть некоторые другие функции с повышенным разрешением, и все работает. Напротив я попытался добавить 2 строки кода (первые 2 строки), с которыми у автора вышеуказанного связанного сообщения возникли проблемы. Теперь это похоже на проблему не с моей конфигурацией, а с самим Outlook.

Возможно ли, что в Outlook 2013 я не отвечаю на имя «Outlook.Application»?

ответ

0

Outlook - это одноэлементный режим, поэтому система COM попытается подключиться к исполняемому экземпляру. Если контексты безопасности Outlook и вашего приложения отличаются друг от друга, COM не будет маршировать существующий объект.

Где ваш код работает?

+0

Прямо сейчас я просто запускаю его локально на своем IIS. Это приложение SL с повышенными разрешениями. Outlook открыт и запущен – katit

+0

IIS - это сервис, а Outlook (или любое другое приложение Office) нельзя использовать из службы. –

+0

Я использую его от клиента Silverlight, а не от сервера. – katit

0

Я просто запускаю его локально на своем IIS.

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

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

+0

Процитированный текст относится к тому, как я запускаю приложение для разработки. Silverlight - это клиентская технология. Я пытаюсь автоматизировать LOCAL, похожий на «mailto:» в html. Я не запускаю Outlook на сервере, это на машине моего клиента – katit

0

С Outlook 2013 Automation не работает, если Outlook открыт. Если я закрою внешний вид - это сработает.

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

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