用C#动态生成Word文档功能实现了,在本地的机器运行时是好的,但程序发布 IIS 或 远程服务器 上就报错,
报错信息为:检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005 拒绝访问。
报错如下图:
方法一(推荐):
1、运行dcomcnfg.exe打开组件服务,
2、依次展开 "组件服务" → "计算机" → "我的电脑" → "DCOM配置" → "Microsoft Word 文档"
3、右键打开“属性”对话框,点击“标识”选项卡,选择"下列用户",把管理员的用户及密码正确填写进去...
4、点击"安全"选项卡,依次把"启动和激活权限","访问权限","配置权限",都选择为自定义,然后依次点击它们的编辑,把everyone添加进去,并加入所有的权限
5、请设置web.config中的<identity impersonate="true" userName="Administrator" password="abc123"/>帐号和密码,否则会提示检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。
例如:
<system.web> <identity impersonate="true" userName="Administrator" password="abc123"/> </system.web>
方法二:
1、控制面板 → 管理工具 → 组件服务 → 计算机 → 我的电脑 → DCom配置 → 找到Microsoft Word文档之后
2、右键 “属性” 打开此应用程序的属性对话框。
3、单击"安全"选项卡,分别在"启动和激活权限"和"访问权限"组中选中"自定义",然后 自定义->编辑->添加ASP.NET账户和IUSER_计算机名或Network Service用户
* 这些帐户仅在计算机上安装有 IIS 的情况下才存在。
注意:确保允许每个用户访问,然后单击确定。
4、单击确定关闭 DCOMCNFG。