C# 来自HRESULT的异常:0x800A03EC

C# 来自HRESULT的异常:0x800A03EC,c#,.net,excel,C#,.net,Excel,感谢您的帮助: 我正在VS2010中开发一个与Excel交互的C#Net应用程序。该应用程序在我的本地计算机上正常工作。但是,上载到远程Windows 2003服务器会破坏应用程序 最初,我收到了以下消息 由于以下错误,检索CLSID为{00024500-0000-0000-C000-0000000000 46}的组件的COM类工厂失败:80070005 在谷歌搜索该问题(这表明存在权限问题)后,我尝试了以下方法: 安装Excel2007 进入远程服务器上的组件服务并按照此处的说明进行操作

感谢您的帮助:

我正在VS2010中开发一个与Excel交互的C#Net应用程序。该应用程序在我的本地计算机上正常工作。但是,上载到远程Windows 2003服务器会破坏应用程序

最初,我收到了以下消息

  • 由于以下错误,检索CLSID为{00024500-0000-0000-C000-0000000000 46}的组件的COM类工厂失败:80070005
在谷歌搜索该问题(这表明存在权限问题)后,我尝试了以下方法:

  • 安装Excel2007
  • 进入远程服务器上的组件服务并按照此处的说明进行操作:
现在,我在同一个操作中收到以下消息:

  • 来自HRESULT的异常:0x800A03EC
谷歌搜索似乎暗示这是一个版本匹配错误。但是,本地计算机和远程服务器都使用Excel2007

欢迎提出任何建议。提前谢谢

-丹尼尔建议:

  • 从一个线程控制Excel并使用“en_US”区域性。如果使用非英语区域性,则有许多属性触发0x800A03EC。您的windows 2003是否使用了其他系统语言?如果是,则这可能就是问题所在。不需要重新安装windows!只需指定应用程序中线程的区域性
  • 使用范围检查字符串集的长度。对911字符有限制。对于字符串较大的单元格,可以分别设置它们。这是乏味的,但我找不到任何其他方法来解决这个问题

  • 如果试图将datagridview发送到Excel电子表格,请记住Excel单元格从单元格(1,1)开始,但datagridview.rows和datagridview.columns的索引为0。因此,如果您尝试将datagridviewcell(0,0)的内容发送到Excel单元格(0,0),您将从HRESULT获得异常:0x800A03EC

    我疯狂地在谷歌上搜索了整整15分钟,然后用手掌猛击额头

    Excel.Cells(0,0)=Datagridviewcellvalue // throws HRESULT: 0x800A03EC error 
    Excel.Cells(1,1) = Datagridviewcellvalue //no error
    

    我可以通过全面禁用所有加载项并重新启动应用程序来解决此问题。然后,我重新启用了有用的功能,观察Excel的行为。YMMV

    从“C:\WINDOWS\Microsoft.Net\Framework\v2.0.50727\temporary ASP.Net files”此文件夹中删除临时ASP.Net文件,请在此之后进行检查

    在检查它是否不工作后,重新启动系统并检查。。。由于文件损坏,有可能发生这种情况。所以做一个光盘检查

    多谢各位