Не удалось получить фабрику класса COM для компонента с CLSID {00020906-0000-0000-C000-000000000046} из-за следующей ошибки: 80070005 - PullRequest
2 голосов
/ 10 августа 2010

Я получаю вышеупомянутую ошибку, когда мой веб-сервис пытается программно открыть документ MS Word через мой .net webb сервис. Когда я запускаю веб-сервис через Visual Studio, он работает нормально, но при развертывании веб-сервиса в IIS 7 я получаю сообщение об ошибке

Получение фабрики класса COM для компонент с CLSID {00020906-0000-0000-C000-000000000046} не удалось из-за следующей ошибки: 80070005

Я видел подобные вопросы и пробовал их решения на Stackoverflow, MSDN и других ресурсах, но ни один из них не работал для меня. Большинство вопросов были устаревшими, начиная с 2008/2007 года.

Я попытался изменить настройку DCOM с помощью команды dcomcnfg, и я добавил «Сетевая служба», «Сетевые» пользователи, также добавил свой собственный идентификатор пользователя в свойствах компонента «Microsoft Word Document» и дал им полное разрешение. Я также добавил свойство impersonate = true в web.config. После всего этого я тоже получаю ошибку. Кто-нибудь может помочь мне?

Я пытаюсь все это на 32-битной ОС MS Vista, а версия Office - Office 2003.

1 Ответ

2 голосов
/ 26 августа 2010

Я не пользуюсь веб-службой, а службой Windows, и у меня возникла та же ошибка, когда служба вызывала исполняемый файл, который пытался создать объект Excel.Я также прочитал много других ресурсов, и ни один из них не работал для меня.Некоторые были очень близки, что привело меня к решению проблемы следующим образом:

  1. Я пошел на сервер ... Запустите .. Запустите и запустите "dcomcnfg".
  2. Перейдитев службы компонентов ... Компьютеры ... Мой компьютер ... Конфигурация DCOM ... Приложение Microsoft Excel.
  3. Откройте свойства и перейдите на вкладку «Удостоверение».
  4. Выберите «Запускающий пользователь»(вместо «Интерактивный пользователь») и нажмите кнопку ОК, чтобы закрыть диалоговое окно свойств.

Ошибка исчезла, и приложение создает файл Excel при запуске службы.

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

...