Workbooks.Open方法抛出HRESULT:0x800A03EC

我打开一个Excel文件使用

object missing = Type.Missing; xlWorkBook = xlApp.Workbooks.Open(strFilePath, missing, false, missing, missing, missing, true, missing, missing, missing, missing, true, missing, missing, missing); 

它会抛出HRESULT: 0x800A03EC

它与Office 2010工作正常,但在更新办公室库到版本15,当部署到办公室2013年的服务器。我开始得到这个消息。 我也曾尝试在DomConfig中授予Excel对象的权限,但它没有工作,

请注意有许多版本的Microsoft.Office.Interop.Excel.dll
对我来说,我可以find一个:

 C:\Program Files\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Office14 

另一个在:

 C:\Program Files\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Office12 

从您的项目中删除引用并添加合适的引用,重build您的解决scheme。
编辑#1
Office11是Office 2003的内部名称。
用于Office 2007的Office12。
用于Office 2010的Office14。
安装Microsoft Office时,请确保已select.NET可编程性支持function。 另外,你可以下载它们的forms:
Office 2010:主互操作程序集
尝试find这些Office 2013。

因为即使使用旧的PIA,您的代码也应该与最新的Office版本配合使用,因此您使用的Office PIA的版本并不重要。

请参阅“服务器端Office自动化的注意事项”文章,其中注明了以下内容:

Microsoft目前不推荐并不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office可能会出现不稳定的行为和/或在此环境中运行Office时发生死锁。