我正面临着IIS Local的一个奇怪问题。我开发了一个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)
....
如果在IIS Express下运行WebAPI,必须说这段代码可以(并正确打开excel)。但是,在本地IIS下运行它时,将打开一个Excel进程(至少它显示在任务管理器中)但没有出现Excel窗口,当调用“proc.WaitForExit”指令时,应用程序似乎挂起,并且EXCEL。 EXE过程保持在“僵尸”状态。一段时间(60秒)后,我的应用程序超时,Excel.EXE进程仍然挂起。
有人知道它为什么在IIS Express上运行而在本地IIS中不起作用吗?
谢谢和亲切的问候。