在本地操作Excel读写都没有错误,发布之后,在服务器端就报错。
总结可以从4方面下手:
1、Office2003的版本是否一致?即你本地装的和服务器上装的版本是否一致,当用到COM组件是不能安装精简版的Office,即安装的时候没有对.net可编程性支持这一项的。
2、非常大的几率就是出现在访问权限上。
3、检查你在IIS上的发布方式的一些参数设置
4、你在开发时,是否安装了一些第三方插件或者集成组件之类的,检查一下
因为大部分都是权限引发的问题,所以在这里只给出解决权限问题的方法
解决办法:
1.
1).通过webconfig中增加模拟,加入管理员权限,
<identity impersonate="true" userName="系统管理员" password="系统管理员密码"/>
2).这样就能够启动Application进程,操作EXCEL了,能够新建EXCEL,导出EXCEL,但是还是不能打开服务器端的EXCEL文件
2.
在组件服务,DOCM设置 Microsoft Excel Application的属性,
因为是在64位系统上面操作,组件服务中DOCOM中默认是没有的,因为Microsoft Excel Application是32的DCOM配置,所以通过如下方式解决(参考第三步)
3.
1).开始--〉运行--〉cmd
2).命令提示符下面,输入mmc -32,打开32的控制台
3).文件菜单中,添加删除管理单元--〉组件服务--〉添加到右侧,点击确定
4).在"DCOM配置"中找到"Microsoft Excel 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft Excel 应用程序属性"对话框
5).点击"标识"标签,选择"交互式用户"
6).点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限
7).依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限.
4.重新启动IIS,测试通过
所以建议:
除非是需要对Excel表格的内容样式等进行操作,才会选用此种方式读写Excel。
不然还是选择其他方式吧。