我的项目中有问题。我想将数据写入Windows 2008服务器上Asp.NET C#中存在的excel文件中。我在本地计算机上创建了项目,该项目正常运行,但是在服务器上发布时,出现此错误:错误
:System.Runtime.InteropServices.COMException (0x800A03EC):
Exception from HRESULT: 0x800A03EC at Microsoft.Office.Interop.Excel._Workbook.SaveAs(Object Filename,Object FileFormat, Object Password, Object WriteResPassword, Object ReadOnlyRecommended, Object CreateBackup, XlSaveAsAccessMode AccessMode, Object ConflictResolution, Object AddToMru, Object TextCodepage, Object TextVisualLayout, Object Local)
at Stock.EService.ReadExistingExcel()
这里是保存文件代码:
mWorkBook.SaveAs(path3, Excel.XlFileFormat.xlWorkbookNormal, Missing.Value, Missing.Value, false, false, Excel.XlSaveAsAccessMode.xlNoChange,Excel.XlSaveConflictResolution.xlUserResolution, true,Missing.Value, Missing.Value, Missing.Value);
mWorkBook.Close(true, Missing.Value,Missing.Value);
如何解决我的问题。我在服务器中创建了一个文件并拥有完全控制权,但是我的项目无法正常工作。请帮助我。
我认为这可能是由于本地计算机和服务器之间的Excel版本不同引起的。
这个问题困扰了我一段时间。我在开发环境中使用Excel 14.0,在生产环境中使用Excel 15.0。
以下是我尝试解决此问题的大多数事情的清单,但是请记住,可能是为我解决了这件事的全部或全部。
开始->运行-> lusrmgr.msc->将服务帐户添加到管理员组。
组件服务->计算机->我的电脑->属性-> COM安全->将用户添加到所有权限。
[组件服务->计算机->我的电脑-> DCOM Config-> Microsoft Excel应用程序->属性->安全->将用户添加到所有权限。
组件服务->计算机->我的电脑-> DCOM配置-> Windows管理和工具->属性->安全->将用户添加到所有权限。
Excel->文件->选项->信任中心->受保护的视图->取消选中所有3个框。
Excel->文件->选项->信任中心-> ActiveX设置->启用所有控件并取消选中安全模式。
Excel->文件->选项->信任中心->宏设置->启用所有宏->信任对VBA项目对象模型的访问。
Excel->文件->选项->信任中心->文件块设置->选择在受保护的视图中打开选定的文件类型。
Excel->文件->选项->信任中心->文件块设置->取消选中所有内容。
Excel->文件->选项->信任中心->外部内容->启用所有数据连接;为所有工作簿链接启用自动更新。
Excel->文件->选项->信任中心->受信任位置->选中“允许受信任位置+添加C:\和任何UNC路径+子目录。
Excel->文件->选项->高级->选中“忽略使用动态数据交换(DDE)的其他应用程序”
在代码中,而不是使用.SaveCopyAs,对于xlsx文件,请对Excel.XlFileFormat.xlWorkbookDefault使用.SaveAs;对于启用了宏的工作簿,请使用Excel.XlFileFormat.xlOpenXMLWorkbookMacroEnabled。