ASP.NET操作Word的IIS权限设置
程序员文章站
2024-03-07 08:49:14
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进程。
检索 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进程。
上一篇: DAM 简单跨数据库ADO.NET组件