Неуправляемая DLL C ++ не запускает Excel на IIS 7.5 - PullRequest
0 голосов
/ 30 января 2012

у нас есть C ++ Win32 DLL, которая читает данные из Excel.

Приложение использует следующую строку для создания приложения:

xl.CreateInstance(L"Excel.Application");

Я хочу использовать эту DLL на.NET Project, поэтому я создал оболочку C ++ / CLI и ссылаюсь на DLL-оболочку в веб-приложении C #.

Win32 (неуправляемый) -> C ++ / CLI (управляемый) -> C #

Веб-приложение отлично работает на интегрированном веб-сервере Visual Studio, однако при развертывании на IIS в приведенной выше строке происходит сбой и возвращается ошибка «Неверный указатель».

Я подумал, что это может быть проблема с разрешениямипоэтому я выдал себя за веб-приложение, но оно не сработало.Похоже, IIS не позволяет открывать Excel из неуправляемой C ++ DLL.Я мог бы открыть из C #, но для чтения электронных таблиц есть много кода на C ++, и я не хочу писать его снова.

Я использую IIS 7.5, а пул приложений разрешает приложения Win32.

Не могли бы вы мне помочь?

С уважением,

1 Ответ

1 голос
/ 30 января 2012

Использование Office Interop на сервере НЕ поддерживается MS - см. http://support.microsoft.com/default.aspx?scid=kb;EN-US;q257757#kb2

Поскольку Windows Vista MS ввела несколько связанных с безопасностью мер, которые не позволяют службе Windows (IIS - это особый случай) выполнять "настольные" вещи ... это означает, что вам придется обойти несколько мер безопасности ( само по себе подражание не поможет!), чтобы заставить его работать (НЕ рекомендуется!).

Встроенный веб-сервер VS НЕ моделирует поведение IIS в отношении разрешений и т. Д.

Для работы с Excel в серверном сценарии существует несколько вариантов (бесплатных и коммерческих):

Я могу порекомендовать Aspose.Cells и Flexcel ... не пробовал SpreadsheetGear , но слышал + читал много хорошего об этом ...

Бесплатные опции (но только для более нового формата xlsx!): OpenXML 2 от MS и EPPlus .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...