Получение ошибки -2147220472 (не удалось запустить Quickbooks)
Я получаю ошибку -2147220472 при попытке подключиться к Quickbooks. Приложение выполняется службой Windows. Файл журнала выглядит следующим образом:
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.
Это на самом деле иногда работает, но я не могу видеть шаблон. Что может быть причиной этого?
В двух словах, код, используемый для подключения, выглядит следующим образом:
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 ответ
Это ключ к этому вопросу:
Приложение выполняется службой Windows.
Благодаря тому, что QuickBooks работает, попытка подключиться к QuickBooks из службы Windows (например, небольшая программа, которая работает и работает в фоновом режиме вместо программы конечного пользователя с графическим интерфейсом) никогда не будет работать надежно.
QuickBooks использует насос сообщений GUI для питания SDK - поэтому, если нет доступного GUI (например, как в службе Windows, которая работает, даже если нет пользователей, вошедших в систему на компьютере), то SDK/API будет недоступен.
Извините за плохие новости.:-/
Можете ли вы сделать так, чтобы ваша программа имела простой графический интерфейс и запускалась только тогда, когда пользователь вошел в систему (заблокируйте экран, если ему нужно покинуть компьютер)?