2013-10-10 72 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實例被啓動,從而導致錯誤描述。