0

IISにASP.netアプリケーションがあります。このアプリでは、Excelアプリケーションを作成しました。

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);

問題:作業中、EXCELプロセスはメモリ内で成長していますが、ワークブックを正しく閉じるにはどうすればよいですか?

4

1 に答える 1

5

たぶん、Excelの自動化をOpenXML処理に置き換えることを検討する必要があります。オフィスアプリケーションのサーバー側の自動化は、サポートされていないシナリオです。

http://support.microsoft.com/kb/257757

「Microsoftは現在、無人の非対話型クライアントアプリケーションまたはコンポーネント(ASP、ASP.NET、DCOM、およびNTサービスを含む)からのMicrosoft Officeアプリケーションの自動化を推奨しておらず、サポートしていません。これは、Officeが不安定な動作を示す可能性があるためです。 /またはOfficeがこの環境で実行されている場合のデッドロック。」

于 2012-02-06T17:45:47.443 に答える