3

我有一个 Quickbooks Web 连接器 (QBWC) 接口的工作原型实现。一切都按预期工作,除了closeConnection 方法大部分时间都没有被调用。

预期行为

QuickBooks Web 连接器程序员指南规定如下(第 21 页):

当 QBWC 得到这个字符串数组时会发生什么?如果字符串数组的第二个成员包含“none”或“nvu”,QBWC 将显示一条消息,调用 closeConnection 并停止会话。

此外,指南在“clientVersion 和身份验证回调”插图中指出了相同的信息(图 2-2,第 20 页):

调用authenticate
如果返回为“none”或“nvu”,
显示消息,调用closeConnection并停止

实际行为

当 authenticate 方法返回值“none”时,将调用这些(并且只有这些)Web 方法(按列出的顺序):

  • 服务器版本
  • 客户端版本
  • 认证

请注意,这仅适用于没有可用于 QBWC/Quickbooks 的工作时。当有工作时,authenticate web 方法返回一个空字符串,QBWC 随后调用以下 web 方法:

  • 发送请求Xml
  • 接收响应Xml
  • 关闭连接

编辑 1:在强制 clientVersion web 方法返回“E”结果后,它会停止更新过程,如程序员指南中所述,但在这些情况下也不会调用 closeConnection web 方法。有趣的是,QBWC在 clientVersion 返回“E”结果后仍然调用 serverVersion Web 方法。

故障排除工作

  • 验证(通过跟踪)字符串数组的第二个成员确实包含值“none”。但是,该会话不会触发 closeConnection 回调。
  • 仔细检查了 QBWC 客户端日志 (QWCLog.txt),发现没有提及 closeConnection 被调用,因此没有与此类调用相关的错误。
  • 验证用于 closeConnection 的方法代码与程序员指南(第 68 页)中的示例相同。

支持信息

对于它的价值,这里有一些实现的细节。

  • ASP.Net 3.5 (c#)
  • QBWC 2.0.0.139
4

0 回答 0