2013-01-18 64 views
0

我们有一个托管在iis 6.0上的web服务,它打开一个指定的excel模板文件。一个宏“t.xla”应该在excel打开后从数据库检索数据,准备客户端下载。 问题是宏似乎没有运行。代码如下如下(我不在公司现,所以我只写伪代码):iis打开excel宏与system.diagnostics.process

System.Diagnostics.ProcessStartInfo pStartInfo = new ProcessStartInfo(excelAppPath, excelTemplatePath); 
//nomal window is in debug mode, createNoWindow will be used in product envirionment 
pStartInfo.WindowStyle = ProcessWindowStyle.Nomal; 

System.Diagnostics.Process process = new Process(); 
process.Start(pStartInfo); 
log.Info("Excel Process was started"); 

当我运行此代码, 1)可以看到EXCEL.EXE从任务管理器启动。 2)excel.exe在桌面上没有创建窗口,有人说它应该是,因为i是有限的。 3)我确定宏“t.xla”没有运行,因为没有应该由宏写入的日志。当我双击excel模板中的任何一个时,都会找到日志。

现在iis工作进程在本地SYSTEM帐户中运行,并且已启用IIS管理服务与桌面进行交互。此外该模板文件和日志文件的目录所有的人都能写

任何人都可以给我一些建议?提前致谢。

回答

0

您可能需要使用比本地系统之外的另一个帐户 - 这样你可以登录为该帐户,并尝试同样的事情,看是否有对话框或错误,如雨后春笋般冒出,可能会阻止事情进一步沿着移动如宏安全设置。微软不支持以这种方式运行Excel,但这并不意味着你无法完成工作。看看这篇文章,它涵盖了更多的细节要考虑:http://support.microsoft.com/kb/257757

+0

是的,当我添加管理员帐户到IIS_WPG组,改变了本地系统管理员,它works.Thanks都是一样的。 – user1990824