维护网站时碰到的Office组件导入、导出出现的问题
问题一:检索COM 类工厂中CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070005
解决方法:
1、运行dcomcnfg.exe打开组件服务;
2、依次展开"组件服务"->"计算机"->"我的电脑"->"DCOM配置"->"Microsoft Excel应用程序
" ,在它上面点击右键,然后点击"属性",弹出"Microsoft Excel 应用程序属性"对话框;
3、点击"标识"标签,选择"交互式用户"
4、点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限;
5、依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限;
6、请设置web.config中的<identity impersonate="true" userName="Administrator" password="abc123"/>帐号和密码,否则会提示检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。
例如
<system.web>
<identity impersonate="true" userName="Administrator" password="abc123"/>
</system.web>
问题二:
之前是按上述步骤设置的,Excel数据的导入,导出和预览没有问题,但是今天又遇到了上面图中的错误。
可能的原因是迁移到政务云上一些配置的问题和不同的操作系统的版本问题(我的环境是Windows server 2012 R2 64位)吧,于是尝试在网上找解决的办法,并成功解决(前提是要配置好上面的,不要忘记安装office组件了。)另外,因为大多数的COM组件是32位的,应用程序池中最好启用32位应用程序,至于其他原因,我再研究研究。
解决办法:
C:\Windows\System32\config\systemprofile和C:\Windows\SysWOW64\config\systemprofile目录下创建名为Desktop目录即可解决问题。
如果配置了,但还不起作用,不要慌,等下班了,重启一下服务器,前提是要做好备份,征求领导客户的同意哦。