星期五发布“交换机BUG管理系统”的时候,出错!
ASP导出数据到Excel的程序,在本机测试一切OK,偏偏传到客户服务器上就报错。
运行DCOMCNFG,在DCOM配置下找不到MicroSoft Excel应用程序。
原因在于没有安装Office。
安装完之后再运行DOMCNFG,选择“安全”选项卡,增加“Everyone”,给予最大权限。
再运行系统,可以了!
解决步骤:
1.检查服务器是否已安装Microsoft Excel
如果没有,请安装
2.在原来的OutExcel.class.asp程序里加入了一些检验代码,判断是否支持某个组件,如下
- '判断系统是否支持strClassString组件
- Function IsObjInstalled(strClassString)
- On Error Resume Next
- IsObjInstalled = False
- Err = 0
- Dim xTestObj
- Set xTestObj = Server.CreateObject(strClassString)
- If Err = 0 Then IsObjInstalled = True
- Set xTestObj = Nothing
- Err = 0
- End Function
在set xlsApp = Server.CreateObject("Excel.Application")之前加入检验代码,如下
- if IsObjInstalled("Excel.Application") = False then
- response.Write("<script>alert('创建Excel.Application失败!');history.back()</script>")
- response.End()
- end if
结果运行时如果弹出了“创建Excel.Application失败!”的错误信息,判断应该可能是Excel.Application权限的问题.
处理方法是:在命令行键入“DCOMCNFG”,则进入COM组件配置界面,选择MicrosoftExcel后点击属性按钮,将三个单选项一律选择自定义,编辑中将Everyone加入所有权限。如果需要,重新启动IIS服务器。
客户端的环境配置没发现什么特别讲究的地方,只要装有Office和IE即可,版本通用的好象都可以。