iis使用system.diagnostics.process打开excel宏
我们有一个托管在iis 6.0上的web服务,它打开一个指定的excel模板文件。宏“t.xla”应该在excel打开后从数据库中检索数据,以便客户端下载。 问题是宏似乎没有运行。代码如下(我现在不在公司,所以我只写伪代码): 当我运行这个代码时, 1) 无法看到excel.exe是从任务管理器启动的。 2) excel.exe不会在桌面上创建任何窗口,有人说应该是这样,因为iis有限。 3) 我确信宏“t.xla”没有运行,因为不存在应由宏编写的日志。当我双击任何一个excel模板时,都会找到日志 现在iis工作进程在本地系统帐户中运行,并且已经启用iis管理服务与桌面交互。此外,每个人都可以编写模板文件和日志文件所在的目录iis使用system.diagnostics.process打开excel宏,excel,iis,process.start,Excel,Iis,Process.start,我们有一个托管在iis 6.0上的web服务,它打开一个指定的excel模板文件。宏“t.xla”应该在excel打开后从数据库中检索数据,以便客户端下载。 问题是宏似乎没有运行。代码如下(我现在不在公司,所以我只写伪代码): 当我运行这个代码时, 1) 无法看到excel.exe是从任务管理器启动的。 2) excel.exe不会在桌面上创建任何窗口,有人说应该是这样,因为iis有限。 3) 我确信宏“t.xla”没有运行,因为不存在应由宏编写的日志。当我双击任何一个excel模板时,都会找到
谁能给我一些建议吗?提前感谢。您可能希望使用本地系统以外的其他帐户,这样您就可以以该帐户的身份登录,并尝试同样的操作,以查看是否出现了任何对话框或错误,这些对话框或错误可能会阻止事情进一步发展,例如宏安全设置。Microsoft不支持以这种方式运行Excel,但这并不意味着您不能让它工作。看看这篇文章,它涵盖了更多需要考虑的细节:是的,当我将管理员帐户添加到iis\u wpg组中,将本地系统更改为管理员时,它就可以工作了。尽管如此,谢谢。
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");