C# 从本地IIS中托管的WebAPI服务打开Excel
我在IIS本地服务器上遇到了一个奇怪的问题。我开发了一个webapi控制器,可以在某个时候打开Excel,用宏进行一些处理,然后关闭。下面是一段代码,用于打开带有多个参数的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 =
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#代码中。另请参阅:-说真的,不要浪费时间试图用这种方式解决你的问题,它根本不起作用,相信我。