Рейтинг:
2
Dave Kreskowiak
Проблема заключается в том, что вы используете офисное приложение в непользовательской интерактивной среде. Вы не можете использовать Office Interop в веб-приложениях или оконных службах. Если пользователь не вошел в консоль и не использует ваше приложение, Office Interop не может быть использован.
Проблема в том, что офисные приложения не поддерживают повторный вход. Это означает, что он не может обрабатывать несколько запросов одновременно.
Member 13290370
Да, автоматизация excel отлично работает в производственной среде. Мы работаем над внедрением новых изменений и развертыванием кода на тестовом сервере, мы сталкиваемся с этой проблемой. Связано ли это с конфигурацией сервера?
Dave Kreskowiak
МММ ... возможно, вы не читали мой пост. ТЫ НЕ МОЖЕШЬ ЭТОГО СДЕЛАТЬ. Конечно, сейчас это может сработать, но именно с этой проблемой вы сталкиваетесь при использовании Office Interop в веб-приложении. Он может и перестанет работать в любой момент.
Это не проблема конфигурации сервера. Это проблема "переписать код", чтобы удалить все зависимости от офисных приложений. В зависимости от того, что вы с ним делаете, вам, вероятно, сойдет с рук использование OpenXML SDK или ClosedXML SDK для выполнения вашей работы в Excel.
Dave Kreskowiak
Прочитай этот[^].
Member 13290370
Как предложил Ричард, я использую ЭППЛУС. Но можете ли вы сказать мне, как получить доступ к макро excel vba в c# с помощью EPPLUS? Или скажите мне, каковы все другие способы доступа к макросам vba в c#. В основном я хочу получить входные параметры метода macro vba в соответствии с заданным именем метода. Я использовал Microsoft.vbe.interop(VBIDE) для доступа к компонентам vba, но получил 8001010a iclassfactory COM ошибки.
Dave Kreskowiak
Я понятия не имею, так как никогда не использовал EPPLUS и даже не поддерживал ли он доступ к коду VBA. Вот тут-то и пригодятся ваши исследовательские навыки.
Рейтинг:
1
KarstenK
COM иногда выходит в эфир, и вы должны придерживаться сообщения об ошибке. Мое лучшее предположение заключается в том, что у вас есть еще один экземпляр, работающий как описанный вот с МВП или какие-то проблемы с Антивирусный сканер Norton.
Посмотрите в диспетчере задач, чтобы убедиться, что ни один другой экземпляр Excel не запущен.
Почему ты этого не делаешь таким образом?
Member 13290370
Даже я пытался, Маршал.ReleaseComObject(workBook) тоже, но это тоже не помогло. Наконец, создан метод Killexcepprocess и убивает excels, если какой-либо процесс excel застрял из-за сбоя в создании отчета.
Что касается ошибки, то я согласен с тем, что ошибка говорит о том, что excel занят. Но мой вопрос таков
почему он занят?, и как я могу знать, что работает в задней части
земля?. дело в том, что в моем производственном компьютере приложение работает
идеальный. я думаю, что это вопрос какой-то конфигурации в
сервер (office excel, брандмауэр или антивирусное программное обеспечение) a
пожалуйста, любое предложение приветствуется