office组件应用问题,请高手分析一下原因!
用asp.net做了一套测评系统,在本机测试都很正常,但是一放到万网的虚拟主机上,一到要调用excel的时候,就会出现以下的提示,本来要显示的excel显示不了,错误提示为:System.Runtime.InteropServices.COMException (0x80040154): 带有 CLSID {00024500-0000-0000-C000-000000000046} 的 COM 对象无效或未注册。然后我将Microsoft.Office.Interop.Excel.dll也复制到虚拟主机空间中的bin目录下,依然出现这个问题,请问这是什么原因?实在不得其解,谢谢! --------------------编程问答-------------------- 光copy这个dll不管用,要安装excel应用程序。 --------------------编程问答-------------------- 好像要装office的吧,会有一个com组件 --------------------编程问答-------------------- office都装了吗?安装完整的话会有那个dll的 --------------------编程问答-------------------- 我问了虚拟主机的供应商,他说没有装,有没有其他办法解决呢? --------------------编程问答-------------------- 没有人能回答吗? --------------------编程问答--------------------
可以肯定的说,不行,一定要装。否则,就算解决的第一个问题,后面大堆问题会接踵而来。
原因是因为,office是单机应用程序,程序很多的初始化信息都是基于Local machine,Microsoft不推荐将office组件用于网络共享程序,
不保证程序的正常运行,也不提供相关技术支持。
MSDN有相关文档。
想实现什么功能?换个solution吧。 --------------------编程问答-------------------- 也就是说,就算装了,也会有其他问题。如果你对server没有任何设置权限的话(无法针对你的程序进行相关权限的修改),那就更不要提了。 --------------------编程问答-------------------- 那就是说如果用那种独享主机就能解决问题? --------------------编程问答-------------------- office的版本不一样吧 --------------------编程问答--------------------
Office组件只适合用来做基于本地的office插件程序(Add-in application),没有server程序的特性,比如大部分server应用程序都有相应service在后台运行。
不过有些third party API可以实现你想要的功能, 如在asp.net程序中点击一个button然后生成一个excel文件。
--------------------编程问答--------------------
Office组件只适合做基于本地的add-in程序,无server程序特性,如大部分server程序都有service在后台运行,提供相关server功能。
不过有第三方API可实现你要的功能,如在ASP.NET程序中点击鼠标生成一个excel文件.
--------------------编程问答-------------------- 没有更好的解决方法了吗?用到excel主要是要用到它的图表,生成一幅曲线图,而且office2007的曲线图很好看,所以领导也要求要用这种曲线图,更换solution可能就不是很现实了,毕竟程序都做好了,还有没有其他方法在服务器端做一些设置,或者是买个专享主机,那样是不是就能直接控易做图务器端了,想装什么软件都行?
--------------------编程问答-------------------- 买主机其他的机器访问还是C/S模式,office组件不是server组件。你所说的功能可以用sql server reporting service来实现,用数据库的数据来生成图表。
补充:.NET技术 , ASP.NET