2016-10-16 2 views
1

arbeiten haben ein Problem mit COMASP.NET WebAPI kann nicht mit COM (Excel) in Azure

Objekten ich einen Web-api-Controller, die Excel-Datei erstellt und speichert.

Nach der Erstellung gibt der Controller eine URL für diese Datei zurück. Auf meinem lokalen Host es ausgezeichnet funktioniert, aber nachdem er als Host Azure Cloud bereitstellen, habe ich eine Ausnahme:

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) 

und etc.

ich bereits zwischen x64 zu wechseln versuchen und x86 - es didn `t helfen

Wenn jemand weiß, wie man diese Probleme zu beheben, sagen sie mir

+1

Excel wird in Ihrem Azure-Dienst nicht installiert, versuchen Sie also nicht, Interop zu verwenden. Es ist viel einfacher zu verwenden [etwas wie ClosedXML] (https://github.com/closedxml/closedxml) – Crowcoder

+0

Haben Sie als eine Webanwendung bereitgestellt? VM? Cloud-Service (Web-/Worker-Rollen)? –

Antwort

0

ich hatte das gleiche Problem als Sie. Ich habe eine offizielle Erklärung von Microsoft gefunden:

"Microsoft empfiehlt derzeit nicht und unterstützt keine Automatisierung von Microsoft Office-Anwendungen von einer unbeaufsichtigten, nicht interaktiven Clientanwendung oder -komponente (einschließlich ASP, ASP.NET, DCOM und NT Services), da Office instabiles Verhalten und/oder Deadlock aufweisen können, wenn Office in dieser Umgebung ausgeführt wird "

Sie werden mit den Details. http://support.microsoft.com/kb/257757

fand ich diese Lösung in einem Blog

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