Выполнить макрос Excel с asp? - PullRequest
       9

Выполнить макрос Excel с asp?

1 голос
/ 14 сентября 2011

Я создаю веб-страницу в традиционном ASP.Я запускаю макросы в разных файлах Excel.В начале у меня было много проблем с проблемами безопасности при запуске объектов DCOM и т. Д., Но все они решены.

Пока я занимаюсь разработкой, я использую учетную запись администратора для веб-сервера (вместо IUSR_acount).).Пока все хорошо.

в одном из файлов Excel, где я вызываю макрос, веб-страница зависает до истечения времени ожидания. Проблема только в этом макросе.Я попытался запустить много макросов в одном файле Excel, и они работают просто отлично.Но только этот макрос (который я не сделал сам) не будет работать.

Я попытался открыть новый документ Word и из этого документа сделать вызов для макроса в файле Excel, и тогда он работает, но при вызовеэто с веб-страницы ASP, это не работает.

Единственное отклонение в этом конкретном макросе, которое я могу видеть, - то, что код макроса создает переменную, содержащую объект как (Set varObj = New Garp.Application).GARP - это старая система бизнес-аналитики.И ссылка, которая вызывается при создании объекта, представляет собой исполняемый файл (.exe), который содержит интерфейс, взаимодействующий с сервером GARP.

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

Но все же: нет проблем с выполнением макроса, если я вручную открываю слово и выполняюМакрос Excel из него (с точным кодом, как на веб-странице).Все остальные макросы в этом же файле и другие работают как брелок, который нужно выполнить с веб-страницы.

У меня действительно нет ни малейшего понятия, что искать ??

Сервер является WindowsServer 2003 R2 x64, и я пытаюсь весь код прямо с сервера ..

1 Ответ

1 голос
/ 27 октября 2011

Попробуйте использовать Server.CreateObject для создания приложения Garp.Application вместо New. Это как-то позволяет COM понять, что вокруг есть внешний объект.

Иногда помогает принудительно очистить любые ссылки на объект, когда вы закончите с ним:

Set x = Server.CreateObject("Garp.Application")
' use x
Set x = Nothing
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...