.net developer123456789 Ответов: 2

Служба Windows, созданная в net 4.0, не может открыть экземпляр outlook


I have created windows service in .Net 4.0. Service is written to open outlook client, read emails from Inbox folder, downloads attachments.The code written is correct, since I have run & tested it in windows application project.
But when I install the web service using "installutil" and run it, the service throws following error on following line of code:
private static Microsoft.Office.Interop.Outlook.Application app = null;
private static Microsoft.Office.Interop.Outlook._NameSpace ns = null;
private static Microsoft.Office.Interop.Outlook.Attachments attachments = null;
Outlook.Application myApp = new Outlook.Application();
Outlook.NameSpace mapiNameSpace = myApp.GetNamespace("MAPI");
ns = myApp.GetNamespace("MAPI");
Error:
Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 80010001 Call was rejected by callee. (Exception from HRESULT: 0x80010001 (RPC_E_CALL_REJECTED))
FYI, the service is fails to run on my local machine.
I feel that service might require some permission, if so please let me know how to assign permissions to windows service.
Please Help.


Что я уже пробовал:

частная статическая Корпорация Майкрософт.Офис.Взаимодействие.Прогноз.Приложение app = null;
частная статическая Корпорация Майкрософт.Офис.Взаимодействие.Прогноз._NameSpace Н = нуль;
частная статическая Корпорация Майкрософт.Офис.Взаимодействие.Прогноз.Вложения вложения = null;
Прогноз.Приложение myApp = новый Outlook.Приложение();
Прогноз.Пространство имен mapiNameSpace = myApp.GetNamespace("MAPI");
НС = приложение.GetNamespace

Garth J Lancaster

под каким профилем установлена служба ? возможно, вам придется взглянуть на олицетворение пользователя http://www.codeproject.com/Articles/10090/A-small-C-Class-for-impersonating-a-User чтобы принудительно запустить код от имени пользователя или создать обычного пользователя и дать указание службе работать от имени этого пользователя

Richard Deeming

Рекомендации по автоматизации работы офиса на стороне сервера[^]:
"В настоящее время корпорация Майкрософт не рекомендует и не поддерживает автоматизацию приложений Microsoft Office из любого автоматического, неинтерактивного клиентского приложения или компонента (включая ASP, ASP.NET, DCOM, и служба NT), поскольку Office может демонстрировать нестабильное поведение и/или взаимоблокировку при запуске Office в этой среде."

То, что вы пытаетесь сделать, не поддерживается.

Philippe Mori

Не используйте Office из службы. Офис не предназначен для этого, и это хорошо известно.

2 Ответов

Рейтинг:
2

Jochen Arndt

Я думаю, что использование Outlook из службы не будет работать. Смотрите также эту тему: Интеграция служб Windows и outlook[^]:

Цитата:
Что касается использования Outlook из службы, то Outlook будет выдавать модальные диалоги/ошибки/предупреждения, которые нельзя отключить. Это не подходит для использования в службе. MS также не поддерживает использование Outlook в службе.

Если вы все еще хотите попробовать его, эта запись в блоге, связанная с Excel, может помочь определить некоторые предварительные условия:
Запуск excel из службы windows | технический блог Bharath's[^].


Рейтинг:
0

Member 13940704

убедитесь, что у вас открыт только один экземпляр outlook


Dave Kreskowiak

Вы ведь не читали 1-е решение, не так ли?

Ваш ответ бессмыслен и не имеет ничего общего с проблемой, описанной 3 года назад.