Asp.Net中Excel操作权限的问题

来源:互联网 发布:高程数据下载 编辑:程序博客网 时间:2024/05/17 09:33

提示权限不足,具体的提示内容如下:

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

        说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.UnauthorizedAccessException: 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。 ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}/ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。 要将 ASP.NET 访问权限授予某个文件,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。

我在解决这个问题的过程中的经历:

window xp 系统:

1、在web.config中加入

<system.web>

 <identity   impersonate="true"  />  

</system.web>
2、在DCOM组件服务中给MICROSOFT.EXCEL组件   赋予ASP.NET的操作权限,具体步骤:  
  (1)打开开始菜单的运行对话框,输入dcomcnfg命令,确定,这时会弹出组件服务窗口  
  (2)展开计算机-〉我的电脑-〉DCOM配置,找到Microsoft   Excel应用程序节点  
  (3)单击右键-〉属性,选中“安全”选项,在下面三个项目都选择“自定义”,并单击编辑按钮  
  (4)在启动权限对话框中点击添加按钮,添加“机器名/ASPNET”用户

  (5)选中“标识”选项,选择交互式用户

 

winidow 2003 系统:

只做第2步,在第(4)中添加的用户改成“NETWORK   Service”

 

不知道为什么两个系统不一样,反正我这么做可以用了。

 

原创粉丝点击