欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP.NET操作Word的IIS权限设置

程序员文章站 2024-03-08 08:57:28
asp.net账号在默认情况下是没有权限操作microsoft office对象的,如果不进行权限的配置,代码会抛出类似以下的异常: 检索 com 类工厂中 clsid 为...
asp.net账号在默认情况下是没有权限操作microsoft office对象的,如果不进行权限的配置,代码会抛出类似以下的异常:

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

这样给asp.net操作microsoft office对象带来了一定的困难。但我们还是要想办法来进行office对象的操作。下面简单介绍一下本人在开发过程中曾经使用过的方法:

  方法1:配置web.config文件,在每次请求时模拟本地系统的账户。

  具体操作:在web.config文件中添加如下节点:

  <identity impersonate="true" username="accountname" password="password" />
  其中:username是要模拟的本地账号,password是该账号的密码。

  方法2:在“dcom配置”中,为iis账号配置操作word(其他office对象也一样)的权限。

具体操作:“组件服务(component service)”->计算机(computers)->我的电脑(my computer)->dcom配置(dcom config)->microsoft office word 97 - 2003 文档,右击“microsoft office word 97 - 2003 文档”,选择“属性”进行一下两步操作:

  (1)在【标识(identity)】选项卡中选中“交互式用户(the interactive user)”.

  (2)在【安全(security)】选项卡中,分别给前两个组(启动和激活权限,访问权限)选择“自定义(customer)”,然后点“编辑”,在弹出的界面中添加iis账号(server版的操作系统一般为network services,其他系统(xp)可能会是asp.net),并在下面的权限框中,给该用户分配所有权限。

  方法3:为asp.net站点应用池分配本地账号

具体操作:在iis中,为asp.net站点创建新的应用程序池,再改应用程序池属性的【标识(identity)】选项卡中,为“预定义账户”选择“本地系统(localsystem)”。

  如果是iis7.0中,则按以下步骤操作:为asp.net站点创建新的应用程序池。选中该应用程序池,高级设置->进程模式—>标识:选择localsystem。

以上三种方法中,个人比较喜欢用第三种,因为在操作完word对象后,还需要关闭word对象的进程,而第三种方法可以不要其他设置就能让asp.net应用程序有权限去结束这个word进程。