C# ASP.NET WebApi无法在Azure中使用COM(Excel)
COM对象有问题吗 我有一个web api控制器,可以创建和保存Excel文件C# ASP.NET WebApi无法在Azure中使用COM(Excel),c#,excel,azure,asp.net-web-api,com,C#,Excel,Azure,Asp.net Web Api,Com,COM对象有问题吗 我有一个web api控制器,可以创建和保存Excel文件 Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); excel.Workbooks.Add(); Microsoft.Office.Interop.Excel._Worksheet workSheet = excel.
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云后,我有一个例外:
例外消息:
"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之间切换了,但没用
如果有人知道如何解决这个问题,告诉我,我的问题和你的一样。我找到了微软的官方声明: Microsoft目前不建议也不支持从任何无人参与、非交互的客户端应用程序或组件(包括ASP、ASP.NET、DCOM和NT服务)自动化Microsoft Office应用程序,因为Office在此环境中运行时,可能会表现出不稳定的行为和/或死锁。 您将看到以下详细信息: 我在博客中找到了这个解决方案
我和你有同样的问题。我找到了微软的官方声明: Microsoft目前不建议也不支持从任何无人参与、非交互的客户端应用程序或组件(包括ASP、ASP.NET、DCOM和NT服务)自动化Microsoft Office应用程序,因为Office在此环境中运行时,可能会表现出不稳定的行为和/或死锁。 您将看到以下详细信息: 我在博客中找到了这个解决方案
Excel不会安装在您的Azure服务中,因此不要尝试使用互操作。使用起来容易得多。您是否部署为Web应用程序?虚拟机?云服务(web/工作者角色)?Excel不会安装在Azure服务中,因此不要尝试使用互操作。使用起来容易得多。您是否部署为Web应用程序?虚拟机?云服务(web/工作者角色)?