1、System.UnauthorizedAccessException: 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005
使用Word必须对dcom进行配置,给用户使用office的权限,否则就会出现以上错误。
具体配置方法如下:
1:在服务器上安装office.
2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务"
3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置"
4:在"DCOM配置"中找到"Microsoft word 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft word 应用程序属性"对话框
5:点击"标识"标签,选择"启动用户"
6:点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限.
7:依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限.
这样,我们便配置好了相应的word的DCOM权限.
注意:我是在WIN2003上配置的,在2000上,是配置ASPNET用户
2、引入Word的 Interop.word.dll文件
一般在安装office时若选择高级自定义中的.NET可编程性支持安装完后会自带该文件的,若没有可以下载02003PIA.EXE文件安装后即有该文件.
在程序中添加Microsoft office 11.0 Object Library 和Microsoft Word 11.0 Object Library 的引用之后即可引入命名空间Microsoft.Office.Interop.Word
3、8000401a错误解决方案(Word应用程序无法访问)
增加Com组件特定用户的访问权限。
1:建立一个所需的帐号(例如test),权限为Power User或者User;
2:用此帐号运行一次word或者excel(确保有访问权限);
3:运行DCOMCNFG,在Dcom组件里面找到Microsoft Excel 应用程序或者Microsoft Word 文档(和前面一样)-属性-标识里面选择“特定用户”,然后输入前面建立的帐号和密码就可以了.
在有的机器上测试还需要在前面的安全标签里面添加这个账号的启用和访问权限.当然直接用自己登陆的帐好也是可行的
4、Word文档中拆分的限制
word中对单元格的拆分最多只允许拆分成25行63列,而单元格的合并并没有限制,所以在涉及到单元格的拆分时最好用单元格合并来实现.