VS2008 RTC 开发, 检索 COM 类工厂中 CLSID 为 {7A42EA29-A2B7-40C4-B091-F6F024AA89BE} 的组件时失败,原因是出现以下错误: 80070005。

本文介绍了解决WCF服务在调用COM组件时出现的权限问题的方法。通过配置web.config文件并添加特定属性到服务操作行为,成功解决了因代理身份权限不足导致的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 这个礼拜使用VS2008开发一套通过RTC即时告知软件系统运行异常信息的成。

结构是:  Web Client / Windows Client + WCF Service +  RTC Protocol

在服务器端部署RTC DLL后,通过WCF进行消息发送的调用,在调试时WCF服务报错:
检索 COM 类工厂中 CLSID 为 {7A42EA29-A2B7-40C4-B091-F6F024AA89BE} 的组件时失败,原因是出现以下错误: 80070005。
 

经过2天排查,发现是WCF的代理身份不具有创建COM组件对象的权限(此问题,以前在进行WORD开发时也遇到过,当时通过修改DCOM运行权限后解决),由于是采用的WCF 因此解决方法有点不一样,只需要在WCF站点的web.config文件中添加如下节点即可。

 

<wsHttpBinding>
          <binding name="wsHttpBindingConfig" maxReceivedMessageSize="6553600">
            <security mode="Message">
              <transport clientCredentialType="Windows" proxyCredentialType="Windows" />
            </security>
          </binding>
        </wsHttpBinding>

对应的service的contract也要用这个BINDING。

 

同时在对应的service 代码上添加说明:

        /// <summary>
        /// 通过RTC发送消息
        /// </summary>
        /// <param name="OpLog"></param>
        /// <returns></returns>
        [OperationBehavior(Impersonation = ImpersonationOption.Allowed)]
        public void SendMessage(string uri, string message)
        {
            //代码

        }

 

WCF在调用COM组件上的配置确实比之前的ASP.NET方式简单,至少不需要去改动组件服务了。

 

至此,问题解决!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值