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)