IIS中Com组件的安全性设置
公司的项目中需要抽取Word文件的正文,在最初的开发过程中,我使用的是微软的Office组件来抽取Word文本内容。这种方法对于普通的WORD文档简便易行,网上也有很多现成的Word操作类可供使用,但对于包含宏脚本的Word文件,这种方法就无能为力了,尤其是对于那些错误的(个人认为是宏病毒)脚本,更显得苍白无力,在使用COM组件打开文档时就弹出了错误提示。正在无奈之时,想到了曾经用过的WPS也能处理Word文档,测试后效果很好,所有文档几乎都能顺利抽取(个人版本的WPS不含宏操作功能,有时候东西越简单可能越好用,支持国货!!!)。
WinForm版本的程序在这种情形下运行正常,但嵌入到WebService以后,调试状态下一切正常,一部署到IIS程序就异常了,Word文本依然抽取不了。无奈,只得挨行打LOG,最终发现在IIS下部署的网站,连WPS应用的操作类都无法实例化。在网上百度一番,有同仁提到是DCOM组件权限的问题,于是试了一把,在DCOM的安全性中赋予Everyone最大权限后,一切正常。具体的设置步骤如下:
1.打开运行,输入dcomcnfg
2.在组件服务窗口中,按 控制台根结点—>计算机—>我的电脑—>DCOM配置—>Kingsoft Writer Application Class(COM组件名称) 找到你使用的COM组件
3.右键点击COM组件,选择属性,点击安全选项卡。对下面的所有项目,都选择自定义,并点击编辑按钮,添加Everyoney用户并将权限赋予到最大。
4.设置完成,重新运行网站项目,WebService此时便可以正常使用COM组件。
此处将Everyone的权限赋予此COM组件,是否恰当,如果哪位仁兄找到了使用COM组件的最小权限集合,劳驾留言告知一下。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构