使用C#读取ASP.net中的excel文件时,访问被拒绝

我正在使用ASP.net(C#)编写Web应用程序。 我有一个excel文件在服务器上,我想读。 当我尝试使用下面的代码读取这个Excel文件时,它会抛出exception。 我已经为服务器上的用户(IIS用户)提供了完整的权限,用于存放excel文件的特定文件夹。

阅读逻辑:

Excel.Application xlApp = null; Excel.Workbook xlWorkbook = null; Excel._Worksheet xlWorksheet = null; Excel.Range range = null; xlApp = new Excel.Application(); xlWorkbook = xlApp.Workbooks.Open("C:\inetpub\wwwroot\Uploads\data.xls); xlWorksheet = (Excel.Worksheet)xlWorkbook.Worksheets.get_Item(sheetName); range = xlWorksheet.get_Range("A1", "B5"); 

例外:

检索具有CLSID {00024500-0000-0000-C000-000000000046}的组件的COM类工厂失败,原因如下:80070005访问被拒绝。 (从HRESULTexception:0x80070005(E_ACCESSDENIED))。

你能帮我理解这个错误吗?

办公自动化不支持从IIS内部或其他代码在用户会话之外运行的情况(例如Windows服务)。 在链接的知识库中,您可以看到在“使用服务器端的Office自动化问题”部分获得了“消息4”。

如果可以从.xls切换到.xlsx文件,则可以使用Microsoft的Open XML SDK 2.5 for Office打开和处理Office 2007及更新的文件。

如果您必须使用旧版的.xls文件格式,则需要find可支持的第三方库。