图文讲解NTFS和FAT32硬盘下 asp.net 生成word 错误: 80070005 和 错误:8000401a 的解决方法...

公司要实现用asp.net/c#来调用word模板,连接数据库来替换模板中的标记,在本机运行调试正常,上传到服务器之后报错

 

本机环境配置为vs2008+office2003, C盘NTFS,word安装在D盘(FAT32),网站运行所在盘也为FAT32

服务器环境配置vs2008+office2003, 所有盘都为NTFS

FAT32和NTFS的最大不同就是安全机制,所以在本地FAT32运行很好的程序在服务器NTFS上面就是跑不起来,下面的解决方法是针对所有盘都是NTFS来解决的

在NTFS下面的报错信息

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

行 42:             }
行 43:

行 45:             WordDoc = new Word.DocumentClass();
行 46: 

 

 
在经历过无数次重装服务器后,找到了一个解决方法,下面的解决方法可以完全解决上面的错误:
运行dcomcnfg或者打开控制面板-》管理工具-》组件服务-》计算机-》我的电脑-》DCom配置-》找到Microsoft Word文档之后,单击属性打开此应用程序的属性对话框
 
 
单击标识选项卡,然后选择下列用户,输入管理员账号和密码
 

单击"安全"选项卡,在"启动和激活权限"组中选中"自定义",然后 自定义->编辑->添加ASP.NET账户IUSER_计算机名(这个其实就是inter的来宾账户),INTERACTIVE,NETWORK SERVICE.其中前面3个的权限全选,后面的NETWORK SERVICE只用勾选本地启动

image

RIK`WZSM3(DF]YGS}5E)K%I  QO@V21K}@7R@[TNH99C]Y@N

 

 

 

 

然后在 "访问权限" 组中选择自定义,分别添加 ASP.NET账户,IUSER_计算机名(这个其实就是inter的来宾账户),NETWORK SERVICE,将他们的本地访问和远程访问权限都设置为允许

RA(GDZ7YQG(H`WLVM%K]SZB

 

最后,在web.config的<system.web>中加入

<identity impersonate="true" userName="administrator" password="您的密码"/>

 

 

另外:这样的解决方法,只能说能解决,但是算不上完美,因为在web.config中加入管理员账号和密码肯定不是很好。我在本机运行的时候,电脑除了C盘是NTFS,其他盘都是FAT32,我的WORD也是安装到了FAT32格式的D盘中,所以在本地测试的时候,设置比较简单就能使用asp.net调用word,下面是FAT32的情况下的DOCM截图

在标识中,选择交互式用户

image

在启动和激活权限中,我一共有8个用户,全部赋给了所有权限

image

image

 

在访问权限中,我一共有6个用户,除了最后面的 SYSTEM只有本地访问权限外,其他的账户权限都是本地访问+远程访问

image

 

 

 

 

image

配置权限我没有做修改,默认即可

image

这种word在FAT32,网站运行在FAT32的情况下,不用对web.config进行设置

如果各位朋友在使用中有问题,欢迎留言讨论

转载于:https://www.cnblogs.com/naniannayue/archive/2010/08/23/1806658.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值