来自HRESULT的exception:0x800A03EC
任何帮助表示赞赏:
我正在VS2010中开发一个与Excel交互的C#.Net应用程序。 该应用程序在我的本地机器上正常工作。 上传到远程Windows 2003服务器,但是,打破了应用程序。
本来,我收到以下消息
- 检索具有CLSID {00024500-0000-0000-C000-000000000046}的组件的COM类工厂失败,原因如下:80070005
谷歌search后(这提示了权限问题)我试过这个问题:
- 安装Excel 2007
- 进入远程服务器上的组件服务,并按照这里的说明: http : //blog.crowe.co.nz/archive/2006/03/02/589.aspx
现在我在同一个操作中得到这个消息:
- 来自HRESULT的exception:0x800A03EC
谷歌search似乎暗示这是一个版本匹配错误。 但是,本地计算机和远程服务器都使用Excel 2007。
任何build议将是非常受欢迎的。 提前致谢。
-Daniel
如果您尝试将数据网格视图发送到Excel电子表格,请记住,Excel单元格始于Cell(1,1),但datagridview.rows和datagridview.columns索引为0.因此,如果尝试发送datagridviewcell(0 ,0)到Excel单元格(0,0),您将从HRESULT:0x800A03EC获得exception
我疯狂地search了15分钟,然后把我的手掌into到我的额头上。
Excel.Cells(0,0)=Datagridviewcellvalue // throws HRESULT: 0x800A03EC error Excel.Cells(1,1) = Datagridviewcellvalue //no error
build议:
- 从一个线程控制Excel并使用“en_US”文化。 如果使用非英语文化,触发0x800A03EC的属性有很多。 是意外您的Windows 2003使用另一种系统语言,如果是的话,这可能是问题。 无需重新安装Windows! 只需在您的应用程序中指定线索的文化。
- 检查使用范围设置的string的长度。 有911个字符的限制。 您可以分别为具有较大string的单元格设置它们。 这是乏味的,但我找不到任何其他方式来解决这个问题。
我能够通过全面禁用所有加载项并重新启动应用程序来解决此问题。 然后我重新启用有用的,看Excel的行为。 因人而异
从“C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files”这个文件夹中删除临时的ASP.Net文件,请在此之后检查。
检查之后,它不工作,然后重新启动系统,并检查…有可能发生这种情况,因为损坏的文件。 所以做一个光盘检查。
谢谢