Проблема со сборкой Microsoft.Office.Interop.Excel на сервере Windows 2008 R2

Наша задача - запустить макрос Excel программно.

В локальной среде все работало нормально, когда мы выполняем следующие шаги:

1.

Microsoft.Office.Interop.Excel.Application appExcel = 
    new Microsoft.Office.Interop.Excel.Application();

2.

Microsoft.Office.Interop.Excel.Workbook workBook =
    appExcel.Workbooks.Open("FilePath",
                   Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                   Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                   Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                   Type.Missing, Type.Missing);`

3

 appExcel.Run("Macro name", "$W$5", 1, 0, "$Q$11:$Q$112",
    Type.Missing, Type.Missing, Type.Missing, Type.Missing,
    Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
    Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
    Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
    Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
    Type.Missing, Type.Missing);

Замечания:

На localhost все работает нормально и макрос выполняется. Но эта функциональность не работает должным образом при размещении в IIS(версия 7.5).

Чтобы это работало, изменения, которые мы сделали:

  1. Панель управления -> Администрирование -> Компоненты Сервисы Компьютеры -> Мой компьютер -> Конфигурация DCOM -> Приложение Microsoft Excel -> Свойства

    1.1. Здесь на вкладке безопасности мы настроили все разрешения, добавив пользователя (IUSR) и предоставив ему все права доступа.

    После внесения этих изменений мы можем создать экземпляр Interop.Excel. Но мы не смогли открыть рабочую книгу.

    1.2. На вкладке "Удостоверение" свойств приложения Microsoft Excel по умолчанию выбран "Запускающий пользователь".

    После изменения значения на "Интерактивный пользователь" мы можем открыть рабочую книгу.

    Но мы не смогли запустить макрос.

    1.3. C: \ Windows \ System32 \ Config\systemprofile

    В этом месте мы создали папку Desktop. Для свойств этой папки на вкладке "Безопасность" мы создали пользователя (IUSR) и получили полный контроль.

Теперь мы можем запускать макрос и получать желаемый результат даже при запуске приложения на сайте, размещенном на IIS.

Выпуск:

После внесения всех изменений, когда мы перенесли изменения на рабочий сервер, мы не смогли найти приложение Microsoft Excel в DCOM Config. Microsoft Office не полностью установлен на рабочем сервере. На сервере было установлено только программное обеспечение Excel.

Мы получаем исключение нулевой ссылки в строке кода ниже.

Microsoft.Office.Interop.Excel.Workbook workBook =
    appExcel.Workbooks.Open("FilePath",
                   Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                   Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                   Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                   Type.Missing, Type.Missing);

Наш производственный сервер работает под управлением Windows 2008 R2.

Может ли кто-нибудь, пожалуйста, предложить правильный способ решения этой проблемы.

0 ответов

Другие вопросы по тегам