.NET调用Microsoft.Office.Interop失败的解决方法

  • A+
所属分类:C#.NET 编程技术

普通版本步骤

1.在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务"

2.依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置"

3.在"DCOM配置"中找到"Microsoft Excel 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft Excel 应用程序属性"对话框

4.点击"标识"标签,选择"交互式用户"

5.点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限

6.依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限.

64位版本

而问题出在64位版本的机器上,因为打开DCOMCNFG之后,找不到项“Microsoft Excel 应用程序”,因为DCOMcnfg是32配置,在64位系统下能完全被支持,所以正好挂彩。
于是查阅到了打开32位的DCOMCNFG的方式:

1.运行:mmc -32

2.打开“文件”-“添加或删除管理单元”-选择组件服务-点击添加-确定。

3.可以在DCOM组件中找到Microsoft Excel Application了({00020812-0000-0000-C000-000000000046})。

comexp.msc -32

于是用最上面的方式配置完成,跑网站,一样出错。

再检查,还有内容没有完成设置。

检查IIS7的设置,最后确定还需要设置应用程序池的标识,把此网站的AppPool的标识要设置为

LocalSystem或者NetworkService,问题解决。

 

如果以上方法还是不行,查看电脑是否有安装WPS文档程序,如果安装请卸载。还可能因为程序没权限访问这个文件,在设置里给权限或者在web.config加上以下代码添加权限

1
2
3
<!--使用excel转PDF功能读取文件权限,需提供windows管理员账号密码(userName:管理员用户名;password:登录密码)-->
<!--如果要用excel转PDF将此属性放到下方identity里 例:userName="Administrator" password="123456"-->
<!--<identity impersonate="true" userName="Administrator" password="123456"/>-->
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: