报错信息:
<?xml version="1.0" encoding="UTF-8"?>
<string xmlns="http://tempuri.org/">0,,,System.Runtime.InteropServices.COMException (0x80040154): 检索 COM 类工厂中 CLSID 为 {0002E551-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80040154。 在 Service_CKDB.Ding_Item_HZMC(String FDB, String FNumber, String FToDB)</string>
解决过程:
1.部署iis服务后报的以上错误;
2.排查过程:
百度后怀疑iis应用服务权限不够,打开控制面板——》系统和安全——》管理工具——》Internet 信息服务(IIS)管理器——》网站,default web site——》选择部署的应用——》编辑权限,增加NETWORK SERVICE,完全控制权限,增加了everyone完全控制权限
开始——》运行,dcomcnfg.exe,打开组件服务——》计算机——》我的电脑——》DCOM配置,未找到组件
开始——》运行,regedit,打开注册表,搜索0002E551-0000-0000-C000-000000000046,找到OWC10.Spreadsheet的CLSID,添加权限,NETWORK SERVICE
后查看部署文件里的web.config,发现运行环境为.net framework 3.5,本机为4.5,卸载4.5,下载官网3.5,安装不上,后通过打开控制面板——》程序——》打开或关闭windows服务,勾选.net framework 3.5.1启用服务
继续查看部署文件,发现里面有三个安装包,一个是office 2003 web component并安装成功,第二个Microsoft SQL Server 2005 Analysis Services 9.0 OLEDB安装不上,第三个MXXML6.0安装成功
安装sql server2008数据库所有服务(system,network service)
comexp.msc -32 来打开32位的组件服务,找到excel word,设置身份验证级别=无,访问权限、启动权限、配置权限增加network service完全控制权限,身份标识为交互式用户
以上,全无解决
打开控制面板——》系统和安全——》管理工具——》Internet 信息服务(IIS)管理器——》应用程序池,选择一个,高级设置,修改“启动32位应用程序”为true,问题解决。