如何将Quickbooks桌面应用程序与具有iis(Web应用程序)的ASP.Net集成?

问题描述 投票:1回答:1
I am using Silverlight application. From this I have called  QuickBooks using QBFC12. Based on my request I got the data and pushed into my own application. Everything fine.

但是当我在iis中部署项目时…我无法连接到快速书籍。每当我连接到快速书本时我收到消息:无法开始快速预订。

我被困在这里。不知道从哪里开始?有人要求我从webconnector开始。如果使用webconnector,则必须创建.qwc文件。而且我必须通过

1.AppURL

2.UserName

3.PassWord ..etc。

这是其他用户界面...但是我不想使用任何其他应用程序...例如webconnector。

但是我的要求是:

使用我的asp.net应用程序,我必须将选择的对象提供给最终用户:like

1。客户

2。供应商

3。复选框之类的项目。

基于选择,我必须获取相关数据。

任何人都可以建议我如何从部署区域连接快速书籍.....

或任何其他解决方案.....

quickbooks qbfc
1个回答
0
投票

[如果其他人也遇到了同样的问题。您不能直接从ASP.NET运行它。 QuickBooks并非旨在从服务运行。但是,我发现了一种混合解决方案。使用控制台应用程序和自托管的WCF Restful Service。您可以打开与Quickbooks的连接,开始一个会话,然后将其存储在静态/共享变量中。要使用该连接,您必须将数据访问方法存储在一个任务中,然后将该任务传递给主线程可以轮询的线程安全集合。这似乎已通过显着的Could not connect to Quickbooks错误消息和线程挂起。

我建议使用ConcurrentQueue(Of Task(Of Object))

示例服务端点呼叫

Dim tsk As New Task(Of Object)(Function() Quickbooks.createVendor(collectionOfVendors)) Queue.Enqueue(tsk) Dim result = Await tsk ' Wait for your task to complete here

Main

waitAgain: ' Await queue to fill Do Until Queue.Count > 0 'Wait for queue request Loop ' Process queue Dim proc = Task.Run(Function() ProcessQueue()) proc.Wait() GoTo waitAgain

ProcessQueue

Dim activeTsks As New List(Of Task(Of Object)) For i = 0 To Queue.Count - 1 Dim target As Task(Of Object) = Nothing If Queue.TryDequeue(target) AndAlso target.IsntNothing AndAlso target.Status = TaskStatus.Created Then activeTsks.Add(target) target.Start() End If Next ' Wait for all in the queue to process Await Task.WhenAll(activeTsks)

异常处理可能很棘手,但是如果您在正确的位置捕获异常,则可以将异常传播到端点方法并正确响应。 QuickBooks不一定是针对这种使用而设计的,因此另一个警告是,QuickBooks将挂起,直到完成来自

的请求为止。

Dim target As Task(Of Object) = Nothing

我很快将整理一个github仓库。

© www.soinside.com 2019 - 2024. All rights reserved.