服务器端IIS中部署带Office组件程序

开发的程序需要用到Office组件(Word、Excel等)的时候,往往在开发环境中运行正常,但是部署到服务器上就出问题。

1)首先保证开发环境引用的dll正确

.net 4.0以上版本,添加引用Microsoft.Office.Interop.Word.dll

服务器端IIS中部署带Office组件程序

服务器端IIS中部署带Office组件程序

引用完成后,开发环境已经可以正常运行了。

2)如果直接将程序发布,部署到服务器IIS上的话,用到office相关功能时,系统就会报错

(检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005)

解决这个问题,首先要确保服务器上按照了Office 办公软件(完全安装)。

3)运行“dcomcnfg”,打开 DCOM 配置程序。(或者 开始→设置→控制面版→管理工具→组件服务→计算机→我的电脑→DCOM配置)

找到Office组件,将 “身份标识” 选项卡中的用户设为 “交互式用户” 。

服务器端IIS中部署带Office组件程序

服务器端IIS中部署带Office组件程序

设置选中 “安全性” 选项卡中的 “使用自定义配置权限”,点击 “编辑”。

服务器端IIS中部署带Office组件程序

用户添加 EveryOne ,手动添加

服务器端IIS中部署带Office组件程序服务器端IIS中部署带Office组件程序

这样权限就配置好了,重新打开网页,相关功能都可以正常使用了。

对 Word 进行编程,实际上就是通过 .Net Framework 去调用 Word 的 COM 组件,所有要在 Web 环境下调用 COM 组件的时候,都需要对其进行相应的配置。
很多朋友都反映在 Windows 环境下调试正常的程序,一拿到 Web 环境中就出错,实际上就是因为缺少了这一步。

另外:可以考虑使用NPOI第三方组件,同样可以操作 .docx文件(doc文件目前好像无法处理),.xls / .xlsx文件;使用NPOI就不需要再在服务器上安装Office软件,再配置权限什么了。后续,整理好了,会再写篇关于NPOI的文章。

上一篇:对String中固定符号隔开的每项做无序不重复监测


下一篇:[小问题笔记(一)] js关闭页面window.close() 无效,不弹提示直接关闭