Divymital Ответов: 1

Ошибка при преобразовании word в pdf с помощью Microsoft office 2013 standard edition


Привет,

Мы пытаемся конвертировать документ word в PDF и можем сделать то же самое на промежуточном сервере с помощью Microsoft office 2007 professional setup с помощью
ExportAsFixedFormat
метод от
Microsoft.Office.Interop.Word.Document 
снизу код :

wordDocument.ExportAsFixedFormat(paramExportFilePath,
                            paramExportFormat, paramOpenAfterExport,
                            paramExportOptimizeFor, paramExportRange, paramStartPage,
                            paramEndPage, paramExportItem, paramIncludeDocProps,
                            paramKeepIRM, paramCreateBookmarks, paramDocStructureTags,
                            paramBitmapMissingFonts, paramUseISO19005_1,
                            ref paramMissing);


Однако он не работает на производственном сервере с Microsoft Office 2013 standard edition и выдает следующую ошибку при запуске из IIS :

Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80070005 Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)).


Я не уверен, связано ли это с разницей в настройках office или нам нужно добавить какую-то надстройку ?

Мы также пытались предоставить права на DCOM config.

Пожалуйста, помогите.


Заранее спасибо.

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

We have tried giving rights to DCOM config 

1 Ответов

Рейтинг:
1

an0ther1

Вы не должны использовать офисные интерфейсы таким образом, MS не поддерживает их использование в качестве части веб-сайта & они не рекомендуются, см.;
Рекомендации по автоматизации работы офиса на стороне сервера[^]
Обратитесь конкретно к этому разделу Проблемы с использованием серверной автоматизации Office поскольку это ясно описывает, почему у вас возникли проблемы, особенно в отношении идентификации пользователя, ваш веб-сайт, скорее всего, работает под учетной записью, которая не имеет профиля пользователя, поэтому office не будет работать правильно. Обойти это можно но не правильный ответ

с уважением