0

我有一个用户在使用 QuickBooks Web 连接器和 IIS 7 响应 ItemQueryRq 时收到以下错误。

版本:1.6

消息:ReceiveResponseXML 失败

描述:QBWC1042:ReceiveResponseXML failed 错误消息:运行配置文件中指定的扩展时出现异常。--> 超出最大请求长度。有关详细信息,请参阅 QWCLog。记得打开登录。

日志显示先前的请求是

QBWebConnector.SOAPWebService.ProcessRequestXML() :从 QuickBooks 收到的响应:大小(字节)= 3048763

在 IIS 7 中,允许的最大内容长度设置为 30000000,所以我不确定我需要更改什么才能允许此响应通过。有人可以指出我正确的方向吗?

4

2 回答 2

0

很有可能,您的 Web 服务器正在拒绝 Web 连接器的 HTTP 请求,因为您尝试向其发布太多数据。不过很难确定,因为看起来您的Web 连接器并没有处于 VERBOSE 模式,而且您没有真正发布足够多的日志来查看其余发生的事情,而您没有t 发布您发送的 ItemQuery 请求或您在响应中返回多少项目的想法。

如果我不得不猜测,您将发送一个非常通用的 ItemQueryRq 来尝试获取所有项目,这很有可能返回大量数据,从而让 IIS 拒绝 HTTP 请求。

每当您使用 Web 连接器获取大量数据时,您都应该使用迭代器。迭代器允许您将结果集分解为更小的块。

于 2013-12-06T13:20:05.487 回答
0

如果您只需要确定 QB 中是否存在某个项目,您只需将 IncludeRetElement 添加到您的 ItemQuery

所以你应该发布类似的东西

<ItemQueryRq requestID="55">        
<FullName>Prepay Discount</FullName>        
<IncludeRetElement>ListID</IncludeRetElement>      
</ItemQueryRq>

在项目查询响应中只需检查状态代码。如果等于 500 则表示您应该将您的项目推入 QB,如果等于 0 则表示该项目存在

该解决方法将在您的响应中节省大量字节

于 2014-10-01T05:08:51.257 回答