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相关的问题。请注意,我们的代码都可以在...
实际的问题似乎是IIS APPPool
对注册表项没有适当的权限。