C # Excel не создает экземпляр при запуске вне режима отладки.(Экземпляр IIS) - PullRequest
0 голосов
/ 01 октября 2018

Извините за плохо сформулированный заголовок.У меня есть приложение, которое принимает файл Excel, вносит некоторые изменения, форматирует данные в виде набора данных и экспортирует их в C #.когда я запускаю либо в режиме отладки (F5), либо с помощью Ctrl + F5, у него нет проблем с запуском.Лист Excel создается, заполняется и сохраняется в нужном месте.когда я настроил экземпляр в IIS, чтобы протестировать его вне этого метода для симуляции пользователя (тот же компьютер, браузер и т. д.), он не может создать приложение Excel.Он не выдает ошибку, он просто никогда не создает, не заполняет и не перемещает в местоположение, а затем говорит, что все работает.Я полагаю, что проблема (насколько мне известно) заключается в коде здесь

 Excel.Application excelApp = new Excel.Application();
 excelApp.Visible = true;

Чтобы уточнить, мой импорт Excel вверху составляет

 using Excel = Microsoft.Office.Interop.Excel;

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

В системном представлении я получаю сообщение об ошибке

 The server {00024500-0000-0000-C000-000000000046} did not register with DCOM within the required timeout.

А в средстве просмотра приложений я получаю сообщение об ошибке

 Faulting application name: EXCEL.EXE, version: 16.0.9126.2282, time stamp: 0x5b90650a
 Faulting module name: AppVIsvSubsystems32.dll, version: 6.3.9600.18895, time stamp: 0x5a4b127e
 Exception code: 0xc0000142
 Fault offset: 0x0009d4e2
 Faulting process id: 0x13a4
 Faulting application start time: 0x01d45984c26a7014
 Faulting application path: C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE
 Faulting module path: AppVIsvSubsystems32.dll
 Report Id: 001becbd-c578-11e8-80f3-00505689c70f
 Faulting package full name: 
 Faulting package-relative application ID: 

Дайте мне знать, нужна ли какая-то информация или что-то неясно

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Попробуйте, не используя interop, и вместо этого используйте динамическую переменную:

Type excelType = Type.GetTypeFromProgID("Excel.Application");
dynamic excelApp = Activator.CreateInstance(excelType);
excelApp.Visible = true;
0 голосов
/ 01 октября 2018

вам нужно использовать другую библиотеку для архивирования. EPPlus

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