Getting error -2147220472 (Could not start Quickbooks) [closed]

為{幸葍}努か 提交于 2019-12-06 03:29:16

问题


I am getting error -2147220472 when I try to connect to Quickbooks. The application is executed by a windows service. The log file is as follows:

I   8788    RequestProcessor    ========= Started Connection =========
I   8788    RequestProcessor    Request Processor, QBXMLRP2 v12.0
I   8788    RequestProcessor    Connection opened by app named 'QBWatcher'
I   8788    RequestProcessor    OS: Microsoft Professional (build 9200), 64-bit
I   8788    RequestProcessor    Current Process is elevated
I   8788    RequestProcessor    Current User is in AdminGroup
I   8788    RequestProcessor    Current Process is ran as Admin
I   8788    RequestProcessor    Current Process Integrity Level : 3000
I   8788    RequestProcessor    Previous instance of QB is going down..! Wait and retry to get a new instance.
I   8788    RequestProcessor    Previous instance of QB is going down..! Wait and retry to get a new instance.
I   8788    RequestProcessor    Previous instance of QB is going down..! Wait and retry to get a new instance.
I   8788    RequestProcessor    Previous instance of QB is going down..! Wait and retry to get a new instance.
I   8788    RequestProcessor    Previous instance of QB is going down..! Wait and retry to get a new instance.
E   8788    RequestProcessor    Could not find or create an instance of QuickBooks using InstanceFinder
I   8788    RequestProcessor    Connection closed by app named 'QBWatcher'
I   8788    RequestProcessor    ========== Ended Connection ==========
I   8788    CertVerifier    The file does not contain an Authenticode signature.

This actually works at times, but I can't see a pattern. What might be causing this?

In a nutshell, the code being used to connect is as follows:

qbxmlConn.OpenConnection2(filename, "QBWatcher", QBXMLRP2Lib.QBXMLRPConnectionType.localQBD);
QBXMLRP2Lib.IAuthPreferences qbAuthPrefs = qbxmlConn.AuthPreferences;                                   
qbAuthPrefs.PutPersonalDataPref(QBXMLRP2Lib.QBXMLRPPersonalDataPrefType.pdpNotNeeded);
qbAuthPrefs.PutUnattendedModePref(QBXMLRP2Lib.QBXMLRPUnattendedModePrefType.umpOptional);
ticket = qbxmlConn.BeginSession(filename, QBXMLRP2Lib.QBFileMode.qbFileOpenDoNotCare);

回答1:


This is the key to this question:

The application is executed by a windows service.

Due to the way QuickBooks works, trying to connect to QuickBooks from a Windows service (e.g. a little program that sits and runs in the background instead of an end-user program with a GUI) will never work reliably.

QuickBooks uses a GUI message pump to power the SDK - so if there's no GUI available (e.g. like in a Windows service that runs even when there are no users logged on to the machine) then the SDK/API won't be available.

Sorry for the bad news. :-/

Can you make your program have a simple GUI and only run when a user is logged on (lock the screen if they need to leave the computer) instead?



来源:https://stackoverflow.com/questions/20905010/getting-error-2147220472-could-not-start-quickbooks

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!