错误现象:
检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。
CLSID可能为000209FF,00020906啥的。
解决办法:
这个问题折磨了我很长的时间。在VS2005的调试模式下能够正常生成word文件,但是通过web服务器访问时,就报这个错误了。
1. COM组件的访问权限
2. ASP.NET应用程序的访问权限
3. 生成word文件的代码编写方式
.NET导出Excel遇到的80070005错误的解决方法:
检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070005基本上.net导出excel文件,都需要如此配置一下,不配置有的时候没错,而配置后基本应该不会出错。
具体配置方法如下:
1:在服务器上安装office的Excel软件.
2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务"
3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置"
4:在"DCOM配置"中找到"Microsoft Excel 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft Excel 应用程序属性"对话框
5:点击"标识"标签,选择"交互式用户"
6:点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限.
7:依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限.
8.如果交互式用户设置后出现错误8000401a,可取消交互式用户,指定为administratr,可暂时解决此问题。进一步的解决方式还有待探讨。
9.采用第8点的设置后,打开Excel可能会出现“无法使用对象引用或链接”,并且不能进行单元格粘贴。原因不明,取消设置后即可消失。
在web.config中使用身份模拟,在<system.web>节中加入 <identity impersonate="true" userName="你的用户名" password="密码"/>
</system.web>
这个问题比较隐晦。我至今仍然不知道为什么会这样。!!!
// Word.Document doc = new Word.Document(); //使用这句化就出现错误 object Obj_FileName = FileName; object Visible = false; object ReadOnly = false; object missing = System.Reflection.Missing.Value; Word.Document doc = app.Documents.Open(ref Obj_FileName, ref missing, ref ReadOnly, ref missing, //使用这种方式打开word文档就没有问题了。 ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref Visible, ref missing, ref missing, ref missing, ref missing); doc.Activate();