Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在IIS上处置Excel COM对象_C#_Asp.net_Iis_Comobject - Fatal编程技术网

C# 如何在IIS上处置Excel COM对象

C# 如何在IIS上处置Excel COM对象,c#,asp.net,iis,comobject,C#,Asp.net,Iis,Comobject,我在IIS上有一个ASP.NET应用程序。在此应用程序中,我使用Excel COM对象: using Excel = Microsoft.Office.Interop.Excel; 我使用以下对象: public Excel.Application ExlApp; // public Excel.Workbook ExlWb; // public Excel.Worksheet ExlWs; 然后像这样摧毁他们:

我在IIS上有一个ASP.NET应用程序。在此应用程序中,我使用Excel COM对象:

using Excel = Microsoft.Office.Interop.Excel;
我使用以下对象:

        public Excel.Application ExlApp;
        //
        public Excel.Workbook ExlWb;
        //
        public Excel.Worksheet ExlWs;
然后像这样摧毁他们:

        GC.Collect();
        GC.WaitForPendingFinalizers();

        Marshal.ReleaseComObject(ExlWs);



        ExlWb.Close(Type.Missing, Type.Missing, Type.Missing);
        Marshal.ReleaseComObject(ExlWb);

        ExlApp.Quit();
        Marshal.ReleaseComObject(ExlApp);
因此,它在VisualStudio2008上正常工作。 但是当我仅在IIS上启动此应用程序时,无法销毁Excel进程!
救命啊

我过去也遇到过调用.Quit()后excel进程仍然存在的问题。我侵入的解决方案是找到正在运行的进程并杀死它。这可能不是最优的,但我想我会分享我的经验。

我同意这并不理想,可能不是最终的答案,但我永远无法让interop excel关闭正常运行。当时我也在使用Office 2003,从那以后,这些工具取得了长足的进步。“MS不支持从Windows服务(例如IIS和ASP.NET)使用自动化”,因此…似乎杀掉proceseas是停止EXCEL的一种方法。