Quickbooks 已打开时,Quickbooks 集成应用程序无法打开连接

And*_*dyL 1 quickbooks qbfc

我有一个使用 QBFC 12.0 用 C# 编写的 Quickbooks“集成应用程序”。它已在具有多个版本的 Quickbooks 的多个站点上安装并正常工作。今天,我尝试使用 Quickbooks 2012 Premiere 在新站点上安装它。要授权应用程序连接,必须打开 QB,以 QB 管理员身份登录,然后从集成应用程序启动连接。每次我在新站点上安装应用程序时都必须这样做。在这种情况下,当我尝试启动连接时,我收到以下错误消息:

无法打开 Quickbook。Quickbooks 无法启动,因为它已经在运行。只有 Quickbooks Accountant 和 Quickbooks Enterprise 可以打开多个公司文件。

由于我的应用程序正在尝试访问已打开的同一个公司文件,因此此消息具有误导性。查看 QBSDKLog.txt,我发现以下内容:

20131010.152314 I   5324    RequestProcessor    ========= Started Connection =========
20131010.152314 I   5324    RequestProcessor    Request Processor, QBXMLRP2 v11.0
20131010.152314 I   5324    RequestProcessor    Connection opened by app named 'IOS     Briefcase Sync'
20131010.152314 I   5324    RequestProcessor    OS: Microsoft Windows 7 Professional Service Pack 1 (build 7601), 32-bit
20131010.152314 I   5324    RequestProcessor    Current Process is elevated
20131010.152314 I   5324    RequestProcessor    Current User is in AdminGroup
20131010.152314 I   5324    RequestProcessor    Current Process is ran as Admin
20131010.152314 I   5324    RequestProcessor    Current Process Integrity Level : 3000
20131010.152314 I   5324    RequestProcessor    Getting the IUnknown COM instance of QB
20131010.152514 E   5324    RequestProcessor    An internal error occured while looking for a running instance of QuickBooks and getting its COM reference. Cannot continue. hr = 80080005
20131010.152514 E   5324    RequestProcessor    Could not find or create an instance of QuickBooks using InstanceFinder hr = 8004041c
20131010.152514 I   5324    RequestProcessor    Connection closed by app named 'IOS Briefcase Sync'
20131010.152514 I   5324    RequestProcessor    ========== Ended Connection ==========
Run Code Online (Sandbox Code Playgroud)

知道什么可能导致 COM 错误吗?

Mar*_*orf 5

我有一个类似的问题,是“无法打开 Quickbooks。Quickbooks 无法启动,因为它已经在运行。” 错误。

在某些情况下,我还会收到“如果 QuickBooks 公司数据文件未打开,则对 BeginSession 方法的调用必须包含数据文件的名称。” 当QuickBooks的肯定有一个数据文件打开。

我终于找到了 QBINSTANCEFINDER17.INI 文件(C:\ProgramData\INTUIT\QuickBooks\QBINSTANCEFINDER17.INI)。我清除了此文件中的条目,现在一切正常。

QuickBooks 使用 QBINSTANCEFINDER ini 文件来跟踪打开的实例。显然,当 QBW32.exe 进程异常关闭时,此文件中的条目并不总是按应有的方式清除。通常这不会引起问题,但在某些情况下会引起问题。

编辑:评论...

我还发现在某些情况下一定存在安全令牌问题(或类似问题)。在 Windows 7 64 位系统上,我发现在调试器 (Delphi 2007) 的控制下运行 QuickBooks 时,我无法从我的应用程序访问 QuickBooks。但是,如果在运行时将相同的 .EXE 文件复制到Program Files (x86)下的正常安装文件夹,则可以很好地访问 QuickBooks。

否则(从调试器运行,甚至只是从我的开发文件夹运行)总是发生的是未检测到正在运行的 QuickBooks 实例并且 QBXML 调用导致启动 QuickBooks 的第二个实例,从而导致您描述的错误。