无法从Interop.QBFC13.IQBSessionManager处的注册表中读取密钥(HRESULT的异常:0x80040150(REGDB_E_READREGDB))>> [

问题描述 投票:-1回答:1
在部署QuickBooks Web连接器所调用的Web服务更新期间,我们没有与Interop.QBFC13.IQBSessionManager相关的问题。请注意,我们的代码都可以在开发环境中使用,并且过去在我们的生产服务器上都可以使用。

[我们在64位Windows 2016服务器上运行,但正在以32位运行我们的Web服务的IIS站点,并且确实将项目编译为x86并确认dll是x86。

我们从出现此错误开始,然后将“应用程序池标识”权限添加到与此类ID /相关联的注册表项中]

错误消息:System.Web.Services.Protocols.SoapException:服务器无法处理请求。 ---> System.InvalidCastException:无法将类型为'Interop.QBFC13.QBSessionManagerClass'的COM对象转换为接口类型为'Interop.QBFC13.IQBSessionManager'。此操作失败,因为具有以下错误的IID为“ {50F59D7F-4E65-45D8-8F19-135F9FE05296}”的COM组件上的QueryInterface调用由于以下错误而失败:不支持此类接口(HRESULT的异常:0x80004002(E_NOINTERFACE)) 。

此后,错误消息从No such interface supported...变为Library Not Registered

现在正在奉献

System.Runtime.InteropServices.COMException:无法从注册表读取密钥(HRESULT的异常:0x80040150(REGDB_E_READREGDB))在Interop.QBFC13.IQBSessionManager.CreateMsgSetRequest

但是它没有说明它试图读取哪个注册表项。

它总是在我们的代码中触发错误的相同位置:

IMsgSetRequest msgSetRq = sessMgr.CreateMsgSetRequest(qbXMLCountry, (Int16)qbXMLMajorVers, (Int16)qbXMLMinorVers);

[我们尝试卸载,然后重新安装QB SDK,QBFC13_0Installer.exe和QBXMLRP2Installer.exe ...在卸载并重新安装后全部重新启动。

在部署QuickBooks Web连接器调用的Web服务更新期间,我们没有遇到与Interop.QBFC13.IQBSessionManager相关的问题。请注意,我们的代码都可以在...

c# quickbooks qbfc
1个回答
1
投票
不是对实际问题的真正答案,但是您通常可以使用Process Monitor来找出注册表的许可(及其他)问题。

实际的问题似乎是IIS APPPool对注册表项没有适当的权限。

© www.soinside.com 2019 - 2024. All rights reserved.