用asp执行Excel宏?

时间:2011-09-14 13:33:58

标签: iis vba excel-vba asp-classic excel

我正在用传统的ASP创建一个网页。我正在做的是在不同的excel文件中运行宏。 在开始时,我在启动DCOM对象时遇到了很多安全问题,但它们都已解决了。

只要我开发,我就使用管理员帐户作为网络服务器(而不是IUSR_acount)。到目前为止一切都很好。

在我调用宏的一个Excel文件中,网页挂起直到超时。 问题只是这个宏。我尝试在同一个excel文件中运行很多宏,它们工作得很好。 但只是这个宏(我自己没有做过)不会工作。

我试图打开一个新的word文档,然后从该文档中调用excel文件中的宏 然后它可以工作,但是当从ASP网页调用它时它不起作用。

我能看到的这个特定宏的唯一缺点是宏代码创建了一个变量 持有像这样的对象(设置varObj = New Garp.Application)。 GARP是一种旧的商业智能系统。 并且在创建对象时调用的引用是包含该对象的可执行文件(.exe) 接口与GARP服务器通信。

这是我能想到的唯一可能导致网页“挂起”的东西。

但仍然: 如果我手动打开word并从中执行excel宏(使用网页中的确切代码),则执行宏没有问题。 所有其他宏,在同一个文件和其他工作,如从网页上执行的魅力。

我真的不知道该找什么?

服务器是Windows Server 2003 R2 x64,我正在直接从服务器上尝试所有代码..

1 个答案:

答案 0 :(得分:1)

尝试使用Server.CreateObject创建Garp.Application而不是New。以某种方式让COM了解周围有一个外部对象。

当你完成对象时,有时会强制清除对象的任何引用:

Set x = Server.CreateObject("Garp.Application")
' use x
Set x = Nothing