2013-10-10 73 views
1

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

无法打开Quickbooks。 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 ========== 

任何想法可能会导致COM错误?

+1

我认为这可能与http://stackoverflow.com/questions/17409766/qbsdk-gets-could-not-start-quickbooks-after-update-to-2012-pro-r14有关。确保您已安装QB 2012的最新更新。我还建议在程序(帮助>更新QuickBooks>立即更新)中完成更新,因为内部更新似乎比Intuit网站上的更新文件下载更多。 – Hpjchobbes

+0

你解决了这个问题吗?如果是这样,请让我知道如何。谢谢 – user1253073

回答

3

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

在某些情况下,我也在收到“如果QuickBooks公司数据文件未打开,则对BeginSession方法的调用必须包含数据文件的名称。”当QuickBooks确实确实打开了数据文件。

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

QuickBooks使用QBINSTANCEFINDER ini文件来跟踪打开的实例。很显然,当QBW32.exe进程异常关闭时,该文件中的条目并不总是按照它们应该清除的 清除。通常这不会导致问题,但可以在某些情况下。

编辑:评论...

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

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