C# 从本地IIS中托管的WebAPI服务打开Excel

C# 从本地IIS中托管的WebAPI服务打开Excel,c#,iis,asp.net-web-api,C#,Iis,Asp.net Web Api,我在IIS本地服务器上遇到了一个奇怪的问题。我开发了一个webapi控制器,可以在某个时候打开Excel,用宏进行一些处理,然后关闭。下面是一段代码,用于打开带有多个参数的Excel: var procStartInfo = new ProcessStartInfo( this.Parameters[ConsoleExecutionParameters.FileToExecute], this.ParametersProcessed) { CreateNoWindow =

我在IIS本地服务器上遇到了一个奇怪的问题。我开发了一个webapi控制器,可以在某个时候打开Excel,用宏进行一些处理,然后关闭。下面是一段代码,用于打开带有多个参数的Excel:

var procStartInfo = new ProcessStartInfo(
this.Parameters[ConsoleExecutionParameters.FileToExecute],
this.ParametersProcessed)
    {
        CreateNoWindow = false,
        UseShellExecute = false,
        RedirectStandardOutput = true,
        RedirectStandardError = true,
        RedirectStandardInput = true,
        WindowStyle = ProcessWindowStyle.Maximized,
        WorkingDirectory = workingDirectory
    };

using (var proc = new Process { StartInfo = procStartInfo })
{
    try
    {
        proc.EnableRaisingEvents = true;
        proc.Start();
        proc.WaitForExit(60000);
        proc.StandardInput.Flush();

        if (!proc.HasExited)
        ....
必须说,如果WebAPI在IIS Express下运行,那么这段代码可以正常工作(并正确打开excel)。但是,在本地IIS下运行时,会打开一个Excel进程(至少在任务管理器中显示),但不会显示Excel窗口,调用“proc.WaitForExit”指令时,应用程序似乎会挂起,Excel.EXE进程保持“僵尸”状态。一段时间(60秒)后,我的应用程序超时,Excel.EXE进程仍然挂起

有人知道为什么它在IIS express上工作而在本地IIS上不工作吗


谢谢并致以亲切的问候。

我已经不再回答这些类型的问题,即:为什么Excel/Word/PowerPoint不能在我的生产web服务器上工作?。有一大堆的安全性和一些许可原因,为什么尝试这样做总是以眼泪告终()。拿出一个开源lib的副本或抓取其中一个:据我所知,Aspose无法执行宏,我真的需要:将宏逻辑提取到C#代码中。另请参阅:-说真的,不要浪费时间试图用这种方式解决你的问题,它根本不起作用,相信我。