2016-10-16 29 views
1

COMオブジェクトに何らかの問題がありますASP.NET WebApiはAzureのCOM(Excel)で動作しません

Excelファイルを作成して保存するWeb APIコントローラがあります。

Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); 

      excel.Workbooks.Add(); 

      Microsoft.Office.Interop.Excel._Worksheet workSheet = excel.ActiveSheet; 

      try 
      { 

       workSheet.Cells[1, "A"] = "Id"; 
       -//- 
       int row = 2; 
       foreach (var _c in db.Clients) 
       { 
        workSheet.Cells[row, "A"] = _c.ClientId; 
        -//-      

        row++; 
       } 

         workSheet.Range["A1"].AutoFormat(Microsoft.Office.Interop.Excel.XlRangeAutoFormat.xlRangeAutoFormatClassic1); 

       fileName = string.Format(@"{0}/ExcelData.xlsx", System.Web.HttpContext.Current.Server.MapPath("~/Reports")); 

       workSheet.SaveAs(fileName); 

作成後、コントローラはこのファイルのURLを返します。私のローカルホスト上 それは優秀に動作しますが、ホストとしてのAzureクラウドにデプロイした後、私は例外を持っている:

ExceptionMessage:

"Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))." 
ExceptionType: 
"System.Runtime.InteropServices.COMException" 
Message: 
"An error has occurred." 
StackTrace: 
" at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) 

となど

私はすでにx64の間で切り替えるようにしてみてくださいそして、x86 - それは、誰かがその悩みを解決する方法を知っている場合は、

を助け、私はより同じ問題を抱えていた私に

+1

ExcelはAzureサービスにインストールされませんので、interopを使用しないでください。 [ClosedXMLのようなもの](https://github.com/closedxml/closedxml)を使う方がはるかに簡単です – Crowcoder

+0

Webアプリケーションとしてデプロイしましたか? VM?クラウドサービス(Web /ワーカーの役割)? –

答えて

0

を伝えるdidn`tの君は。

"マイクロソフトでは現在、無人で非対話型のクライアントアプリケーションまたはコンポーネント(ASP、ASP.NET、DCOMなど)からMicrosoft Officeアプリケーションの自動化を推奨しておらず、サポートしていません、およびNTサービス)、OfficeはOfficeがこの環境で実行されて不安定な挙動および/またはデッドロックを示すことができるので、

あなたが詳細に表示されます。http://support.microsoft.com/kb/257757

は、私がブログ

でこの解決策を見つけました

https://debugmode.net/2011/08/28/creating-and-updating-excel-file-in-windows-azure-web-role-using-open-xml-sdk/

関連する問題