Excel进程不在群集环境中结束

时间:2010-02-05 11:21:22

标签: .net excel

当我们尝试关闭excel对象时,它无法接近群集环境。在QA和UAT环境中也一样。

public bool KillExcelProcess()
    {
        try
        {
            object misValue = System.Reflection.Missing.Value;
            wbObj.Save();
            wbObj.Close(true, misValue, misValue);
            appC.Workbooks.Close();
            appC.Quit();
            System.Runtime.InteropServices.Marshal.ReleaseComObject(objSheet);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(wbObj);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(appC);
            wbObj = null;
            appC = null;

        }
        catch (Exception ex)
        {
            //throw ex;
        }
        finally
        {
            System.Threading.Thread.Sleep(5000);
            GC.Collect();
        }
        return true;

调用功能

#endregion
        try
        {
            log.Info("CloseExcelService (MeasureSavingsComputeBO) Starts ...");
            exConverter.KillExcelProcess();
            while (true)
            {
                try
                {
                    File.Delete(strFilename);
                    break;
                }
                catch (Exception ex)
                {

                }
            }

1 个答案:

答案 0 :(得分:1)

Microsoft建议不要自动执行Excel服务器端here

您可能需要考虑第三方组件,例如SpreadsheetGear for .NET,这是100%安全的托管代码 - 没有COM Interop问题,也没有挂起的Excel实例。

您可以使用C#和VB源here查看实时ASP.NET示例并下载免费试用版here

免责声明:我拥有SpreadsheetGear LLC