【问题标题】:iis open excel macro with system.diagnostics.processiis 使用 system.diagnostics.process 打开 excel 宏
【发布时间】:2013-01-18 17:22:55
【问题描述】:

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

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在桌面上没有创建窗口,有人说应该是,因为iis有限。 3)我确定宏“t.xla”没有运行,因为不存在应该由宏写入的日志。当我双击任何一个excel模板时,会找到日志。

现在 iis 工作进程在本地 SYSTEM 帐户中运行,并且已经启用 IIS Admin Service 与桌面交互。模板文件和日志文件所在的目录也是大家可以写的

谁能给我一些建议?提前致谢。

【问题讨论】:

    标签: excel iis process.start


    【解决方案1】:

    您可能想要使用本地系统以外的其他帐户 - 这样您就可以使用该帐户登录并尝试相同的操作,以查看是否弹出任何对话框或错误,这可能会阻止事情进一步发展,比如宏安全设置。微软不支持以这种方式运行 Excel,但这并不意味着你不能让它工作。查看这篇文章,它涵盖了更多需要考虑的细节:http://support.microsoft.com/kb/257757

    【讨论】:

    • 是的,当我将管理员帐户添加到 iis_wpg 组时,将本地系统更改为管理员,它可以工作。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多