超出最大请求长度

时间:2013-12-05 17:14:50

标签: iis quickbooks qbwc

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

  

版本:   1.6

     

消息:   ReceiveResponseXML失败

     

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

日志显示先前的请求

  

QBWebConnector.SOAPWebService.ProcessRequestXML():从QuickBooks收到的响应:size(bytes)= 3048763

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

2 个答案:

答案 0 :(得分:0)

很可能,您的Web服务器拒绝Web连接器的HTTP请求,因为您尝试向其发送过多数据。但是很难确定,因为它看起来不像你有Web Connector in VERBOSE mode,并且你没有真正发布足够的日志以便能够看到发生的其他事情,而且你没有'发布您发送的ItemQuery请求或了解您在回复中收到的项目数。

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

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

答案 1 :(得分:0)

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

即可

所以你应该发布像

这样的东西
<ItemQueryRq requestID="55">        
<FullName>Prepay Discount</FullName>        
<IncludeRetElement>ListID</IncludeRetElement>      
</ItemQueryRq>

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

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