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 ..等。
这是其他用户界面......但我不想使用任何其他应用程序......例如webconnector。
但我的要求是:
使用我的asp.net应用程序,我必须给最终用户选择:喜欢
1.Customers
2.vendors
3.像复选框一样的项目。
根据选择,我必须得到相关数据。
任何人都可以建议我如何连接部署区域的快速书籍.....
或任何其他解决方案......
答案 0 :(得分: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
主要:
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)
异常处理可能很棘手,但是如果您在正确的位置捕获异常,则可以将异常传播到终结点方法并正确响应。 QuickBook不一定是针对这种类型的使用而设计的,因此另一个警告是,QuickBook将挂起,直到完成来自
的请求为止 Dim target As Task(Of Object) = Nothing
我很快将整理一个github存储库。