0

エラーが発生しています:

System.Runtime.InteropServices.COMException (0x80080005): CLSID {91493441-5A91-11CF-8700-00AA0060263B} を持つコンポーネントの COM クラス ファクトリを取得できませんでした。次のエラーが原因です: 80080005。

ライン用PowerPoint.Application PowerPoint_App = new PowerPoint.Application();

このコード ブロックの場合:

using (new Impersonator(Installs.Current.PPTUser, null, Installs.Current.PPTPassword))
{
    PowerPoint.Application PowerPoint_App = new PowerPoint.Application();
    PowerPoint.Presentation presentation = null;
    try
    {
        PowerPoint_App.Visible = MsoTriState.msoTrue;
        presentation = PowerPoint_App.Presentations.Open(
            strPptFilePath, Microsoft.Office.Core.MsoTriState.msoFalse,
            Microsoft.Office.Core.MsoTriState.msoFalse,
            Microsoft.Office.Core.MsoTriState.msoTrue);

        for (int i = 0; i < presentation.Slides.Count; i++)
        {
            readSlides(presentation, i);
        }
        presentation.Close();
        PowerPoint_App.Quit();
    }
    catch (Exception ex)
    {
        strSuccess = ex.ToString();
        MindMatrix.Libraries.Entities.ExceptionMessage.HandleException(ex, null);
    }
    finally
    {
        Marshal.FinalReleaseComObject(presentation);
        Marshal.FinalReleaseComObject(PowerPoint_App);
    }
}

コードを初めて実行するときはいつでも完全に機能しますが、PowerPoint のプロセスが作成されます (タスク マネージャーで確認できます)。すでに開いているプロセスを終了していPowerPoint_App.Quit();ましたが、機能せず、エラーが発生しました。タスク マネージャーに移動し、そこからプロセスを終了すると、もう一度作業する準備が整います。

コードからプロセスを終了するときに何か間違ったことをしていますか、それとも他の方法がありますか?

4

2 に答える 2