使用QuickBooks Web Connector的身份验证问题:未将对象引用设置为对象的实例

时间:2014-02-15 20:16:23

标签: soap quickbooks qbwc

我有一个SOAP服务器来处理来自QuickBooks Web连接器的连接。它调用的第一个方法是“authenticate”,它正确地返回它所期望的数据,但它给了我错误

QBWC1012: Authentication failed due to following error message.
Object reference not set to an instance of an object.

我对此感到茫然,似乎网上似乎没有解决方案。错误消息并没有真正让我继续下去。

如果有人知道我可以在哪里寻找更多相关信息,我将不胜感激。

以下是该问题的WC错误日志:

20140215.17:15:32 UTC    : QBWebConnector.RegistryManager.setUpdateLock() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\UpdateLock has been set to False
20140215.17:15:32 UTC    : QBWebConnector.RegistryManager.setUpdateLock() : ********************* Update session unlocked *********************
20140215.17:15:32 UTC    : QBWebConnector.WebServiceManager.DoUpdate() : Update completed with errors. See log (QWClog.txt) for details.
20140215.17:15:32 UTC    : UpdateThisScheduledApp() : QBWC1031: Update completed with some error. Application has been notified of the error accordingly. See QWCLog for further information.
20140215.17:16:30 UTC    : UpdateThisScheduledApp() : Password management - Started
20140215.17:16:30 UTC    : UpdateThisScheduledApp() : Password management - Ended
20140215.17:16:30 UTC    : UpdateThisScheduledApp() : Performing SCHEDULED UPDATE for application = PManager SOAP
20140215.17:16:30 UTC    : QBWebConnector.RegistryManager.getUpdateLock() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\UpdateLock = FALSE
20140215.17:16:30 UTC    : QBWebConnector.RegistryManager.setUpdateLock() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\UpdateLock has been set to True
20140215.17:16:30 UTC    : QBWebConnector.RegistryManager.setUpdateLock() : ********************* Update session locked *********************
20140215.17:16:30 UTC    : QBWebConnector.SOAPWebService.instantiateWebService() : Initiated connection to the following application.
20140215.17:16:30 UTC    : QBWebConnector.SOAPWebService.instantiateWebService() : AppName: PManager SOAP
20140215.17:16:30 UTC    : QBWebConnector.SOAPWebService.instantiateWebService() : AppUniqueName (if available): PManager SOAP
20140215.17:16:30 UTC    : QBWebConnector.SOAPWebService.instantiateWebService() : AppURL: https://[SNIP]/pmanager/soapserver.php
20140215.17:16:30 UTC    : QBWebConnector.SOAPWebService.do_serverVersion() : *** Calling serverVersion().
20140215.17:16:31 UTC    : QBWebConnector.SOAPWebService.do_serverVersion() : Received from serverVersion() following parameter:<serverVersionRet="">
20140215.17:16:31 UTC    : QBWebConnector.SOAPWebService.do_serverVersion() : This application sent a null for server version. Allowing update operation.
20140215.17:16:31 UTC    : QBWebConnector.SOAPWebService.do_clientVersion() : *** Calling clientVersion() with following parameter:<productVersion="2.1.0.30">
20140215.17:16:32 UTC    : QBWebConnector.SOAPWebService.do_clientVersion() : Received from clientVersion() following parameter:<clientVersionRet="">
20140215.17:16:32 UTC    : QBWebConnector.SOAPWebService.do_clientVersion() : This application agrees with the current version of QBWebConnector. Allowing update operation.
20140215.17:16:32 UTC    : QBWebConnector.SOAPWebService.do_authenticate() : Authenticating to application 'PManager SOAP', username = '[SNIP]'
20140215.17:16:32 UTC    : QBWebConnector.SOAPWebService.do_authenticate() : *** Calling authenticate() with following parameters:<userName="[SNIP]"><password=<MaskedForSecurity>
20140215.17:16:33 UTC    : QBWebConnector.SOAPWebService.do_authenticate() : QBWC1012: Authentication failed due to following error message.
Object reference not set to an instance of an object.
More info:
StackTrace =    at QBWebConnector.WebService.do_authenticate(String& ticket, String& companyFileName)
Source = QBWebConnector
20140215.17:16:33 UTC    : QBWebConnector.RegistryManager.setUpdateLock() : HKEY_CURRENT_USER\Software\Intuit\QBWebConnector\UpdateLock has been set to False
20140215.17:16:33 UTC    : QBWebConnector.RegistryManager.setUpdateLock() : ********************* Update session unlocked *********************
20140215.17:16:33 UTC    : QBWebConnector.WebServiceManager.DoUpdate() : Update completed with errors. See log (QWClog.txt) for details.
20140215.17:16:33 UTC    : UpdateThisScheduledApp() : QBWC1031: Update completed with some error. Application has been notified of the error accordingly. See QWCLog for further information.

发送给WC的SOAP响应:

<?xml version="1.0" encoding="ISO-8859-1"?>
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:authenticateResponse xmlns:ns1="http://developer.intuit.com/">
    <return xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[2]">
        <item xsi:type="xsd:string">8d51474324d94e25aa1e6670da584204</item>
        <item xsi:type="xsd:string">C:/Path/File.QBW</item>
    </return>
</ns1:authenticateResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

2 个答案:

答案 0 :(得分:0)

可能有点晚了,但是如果它对其他人有帮助,我遇到了类似的问题,并且在QWC文件中将样式从'RPC'更改为'DocWrapped'解决了这个问题。

更新5/2017:

OP的问题与版本号不匹配有关,但我遇到的问题与QWC配置中的样式不匹配有关。根据{{​​3}},正确的版本将取决于服务器设置,但有效的选项包括:“文档”(默认),“DocWrapped”和“RPC”。

对于我的Rails设置,“Document”或“DocWrapped”都可以使用。

更改此配置后,删除并重新添加Web连接器应用程序。

答案 1 :(得分:0)

我应该早点更新...问题原来是版本号,我试图使用不支持某些功能的旧版本。更改WC调用中的版本解决了它。