异常详细信息: System.UnauthorizedAccessException: 检索 COM 类工厂中
CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误:
80070005。ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET
请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为
{MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity
impersonate= "true "/> 模拟,则标识将为匿名用户(通常为
IUSR_MACHINENAME)或经过身份验证的请求用户。
解决方法:
1. 运行DCOMCNFG(在系统的system32下),在 DCOM 配置对话框中,从列表中选择microsoft word文档,单击默认安全性选项卡。
2. 单击访问权限的编辑默认值。验证访问权限中是否列出下列用户,如果没有列出,则添加这些用户:
SYSTEM
INTERACTIVE
Everyone
Administrators
IUSR_ <machinename> *
IWAM_ <machinename> *
* 这些帐户仅在计算机上安装了 Internet Information Server (IIS) 的情况下才存在。
3. 单击启动权限的编辑默认值。验证启动权限中是否列出下列用户,如果没有列出,则添加这些用户:
SYSTEM
INTERACTIVE
Everyone
Administrators
IUSR_ <machinename> *
IWAM_ <machinename> *
* 这些帐户仅在计算机上安装有 IIS 的情况下才存在。
4.windowsXP:选择“身份标识”,在选定“交互式用户”;
windows 2003:选择“下列用户”,添上管理员用户名和密码
5.windowsXP:Web.config 添加 <identity impersonate= "true " userName= " " password= " " />
windows 2003:Web.config 添加 <identity impersonate= "true " />
别人的解决方法,也可以参考一下:(其他com的配置都类似)
具体配置方法如下:
1:在服务器上安装office的Excel软件.
2:在 "开始 "-> "运行 "中输入dcomcnfg.exe启动 "组件服务 "
3:依次双击 "组件服务 "-> "计算机 "-> "我的电脑 "-> "DCOM配置 "
4:在 "DCOM配置 "中找到 "Microsoft Excel 应用程序 ",在它上面点击右键,然后点击 "属性 ",弹出 "Microsoft Excel 应用程序属性 "对话框
5:点击 "标识 "标签,选择 "交互式用户 "
6:
点击 "安全 "标签,在 "启动和激活权限 "上点击 "自定义 ",然后点击对应的 "编辑 "按钮,在弹出的 "安全性 "对话框中填加一个
"NETWORK SERVICE "用户(注意要选择本计算机名),并给它赋予 "本地启动 "和 "本地激活 "权限.
7:依然是 "安全 "标签,在 "访问权限 "上点击 "自定义 ",然后点击 "编辑 ",在弹出的 "安全性 "对话框中也填加一个 "NETWORK SERVICE "用户,然后赋予 "本地访问 "权限.
这样,我们便配置好了相应的Excel的DCOM权限.
注意:我是在WIN2003上配置的,在2000上,是配置ASPNET用户