有一個需求,使用者上傳 Powerpoint 投影片檔案之後,要把每一張投影片匯出成 jpg。 這個在WinForm很簡單,程式碼如下: 1: Microsoft.Office.Interop.PowerPoint.Application ppApp = new Microsoft.Office.Interop.PowerPoint.Application(); 2: Presentation ppPre = ppApp.Presentations.Open(PptPath, MsoTriState.msoTrue, MsoTriState.msoTrue, MsoTriState.msoFalse); 3: string OutputPath = Path.Combine(OutputRootPath, Path.GetFileNameWithoutExtension(PptPath)); 4: for ( int i = 1; i <= ppPre.Slides.Count; i++) 5: ppPre.Slides[i].Export(Path.Combine(OutputPath, i + ".jpg" ), "jpg" , 640, 480); 接著移到WebForm上,使用Visual Studio 2010按下F5,也可以正常執行。 但當Porting 到 IIS之後,就會出現下面兩種錯誤了。 第一個錯誤比較簡單 System.UnauthorizedAccessException: Retrieving the COM class factory for component with CLSID {91493441-5A91-11CF-8700-00AA0060263B} failed due to the following error: 80070005 Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)). 解決方法:執行 dcomcnfg,展開我的電腦,選到DCOM找到,Microsoft Powerpoint Slide,進去把Security...