我正在尝试打开并更新IIS服务器上的xls文件,并将其作为下载发送给用户。下面的代码在开发IIS express环境下运行良好。但是当我将其部署到IIS服务器上时,服务器似乎挂起了Workbooks.open函数。
// Copy template to the given file
System.IO.File.Copy(Server.MapPath("~") + "\\App_Data\\template.xls", file, true);
// Get current project id
int activeProjectID = Convert.ToInt32(Session["activeProjectID"]);
// Open workbook
oXL = new Microsoft.Office.Interop.Excel.Application();
oXL.Visible = true;
oXL.DisplayAlerts = false;
mWorkBook = oXL.Workbooks.Open(file, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
//Get all the sheets in the workbook
mWorkSheets = mWorkBook.Worksheets;发布于 2017-05-17 23:52:01
使用Office Interop库的服务器端自动化不是一个受支持的方案,这是在自找麻烦。它会导致很多问题,因为:
“微软目前不建议也不支持从任何无人参与的、非交互的客户端应用程序或组件(包括ASP.NET和NT服务)自动运行Microsoft Office应用程序,因为当Office在此环境中运行时,它可能表现出不稳定的行为和/或死锁。”
https://support.microsoft.com/en-us/help/257757/considerations-for-server-side-automation-of-office
https://stackoverflow.com/questions/44029534
复制相似问题