我試圖幫助客戶通過QBXML SDK與Quickbooks集成的Web應用程序(ASP/C#)。通過QBXML連接到已打開的Quickbooks實例
我想在用戶會話中打開與已經激活的QuickBooks實例的連接。
有問題的相關代碼:
if (rp == null)
rp = new RequestProcessor2();
if (!connected)
{
rp.OpenConnection2("IMS", "Internal Management System", QBXMLRPConnectionType.localQBD);
connected = true;
}
if (xticket == null)
xticket = rp.BeginSession(cfg.qbfile, QBFileMode.qbFileOpenMultiUser);
原樣,這將嘗試通過DCOM,這是不是一種可行的選擇,推出的Quickbooks的新實例。在QBSDK文檔之後,我試圖將null傳遞給BeginSession的第一個參數,它應該使用打開的qbw文件。
然而,而不是連接到的Quickbooks的運行實例的預期作用,它將啓動一個新實例,最後產生的錯誤:
「如果QuickBooks公司數據文件不開,打電話給「BeginSession」方法必須包含數據文件的名稱。「
運行該Web應用程序的IIS AppPool與我試圖連接的Quickbooks實例使用相同的用戶。
這是由一個不再可用的第三方建立的,當然,他們沒有留下關於這個系統應該如何工作的文檔。任何援助將受到歡迎。
網絡連接器是不是在這個時候一個可行的選擇,因爲這需要一個遺留應用程序的完全重新設計。此外,您似乎在說,在用戶會話中運行快速書本既不可能也不需要。此外,有問題的應用程序可以成功連接到由DCOM自動啓動的quickbooks實例。我不知道如何,介意,但它確實如此。 –
我在哪裏說在用戶會話中運行QuickBooks是不可能的?做什麼你問的唯一支持的方式(也是唯一可靠的方式)是有Web應用程序本身在同一個普通用戶GUI會話運行的QuickBooks在運行。 –
你說的Quickbooks不會允許我連接到在用戶會話下運行的實例。 (答案的最後一句)。我可能誤解了某些部分,這就是我要求澄清的原因。此外,可靠或支持是不相關的,只有可能的事情。這是由不可靠的第三方製作的傳統應用程序。最終的目標是完全重寫,但是我的客戶在此之前無法承受這一點,所以我需要先解決這個被黑客入侵的黑盒子。 –