Reputation: 31
I am getting an exception when I try to send [qbxml request][1] from WCF...I am sending the qbxml request from wcf service using web connector to quick book desktop to get report summery and used GeneralDetailReportQueryRq query xml. But getting "QBWC1042: ReceiveResponseXML failed Error message: The request failed with HTTP status 413: Request Entity Too Large" Error message on web connector and have checked logs and found all response in verbose logs but web connector showing [1] "QBWC1042: ReceiveResponseXML failed".
This is the qbxml request
<?xml version="1.0" encoding="UTF-8"?>
<?qbxml version="13.0"?>
<QBXML>
<QBXMLMsgsRq onError="continueOnError">
<GeneralDetailReportQueryRq>
<GeneralDetailReportType>OpenInvoices</GeneralDetailReportType>
<ReportDateMacro>Today</ReportDateMacro>
<IncludeColumn>TxnID</IncludeColumn>
<IncludeColumn>TxnNumber</IncludeColumn>
<IncludeColumn>RefNumber</IncludeColumn>
<IncludeColumn>Name</IncludeColumn>
<IncludeColumn>TxnType</IncludeColumn>
<IncludeColumn>Date</IncludeColumn>
<IncludeColumn>Account</IncludeColumn>
<IncludeColumn>Aging</IncludeColumn>
<IncludeColumn>Amount</IncludeColumn>
<IncludeColumn>OpenBalance</IncludeColumn>
<IncludeColumn>RunningBalance</IncludeColumn>
<IncludeColumn>Terms</IncludeColumn>
<IncludeColumn>DueDate</IncludeColumn>
</GeneralDetailReportQueryRq>
</QBXMLMsgsRq>
</QBXML>
This the logs in web connector
20170720.08:03:33 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : cfn=""
20170720.08:03:33 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : qbNationality="US"
20170720.08:03:33 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : qbXMLMajorVers="13"
20170720.08:03:33 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : qbXMLMinorVers="0"
20170720.08:03:33 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : Received from sendRequestXML() following parameter:
20170720.08:03:33 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : strRequestXML =
20170720.08:03:33 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : XML dump follows: -
<?xml version="1.0" encoding="utf-8"?><?qbxml version="13.0"?><QBXML><QBXMLMsgsRq onError="continueOnError"><GeneralDetailReportQueryRq><GeneralDetailReportType>OpenInvoices</GeneralDetailReportType><ReportDateMacro>Today</ReportDateMacro><IncludeColumn>TxnID</IncludeColumn><IncludeColumn>TxnNumber</IncludeColumn><IncludeColumn>RefNumber</IncludeColumn><IncludeColumn>Name</IncludeColumn><IncludeColumn>TxnType</IncludeColumn><IncludeColumn>Date</IncludeColumn><IncludeColumn>Account</IncludeColumn><IncludeColumn>Aging</IncludeColumn><IncludeColumn>Amount</IncludeColumn><IncludeColumn>OpenBalance</IncludeColumn><IncludeColumn>RunningBalance</IncludeColumn><IncludeColumn>Terms</IncludeColumn><IncludeColumn>DueDate</IncludeColumn></GeneralDetailReportQueryRq></QBXMLMsgsRq></QBXML>
20170720.08:03:33 UTC : QBWebConnector.SOAPWebService.do_sendRequestXML() : Request xml received.
20170720.08:03:33 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : Processing request #1
20170720.08:03:33 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : REQUEST: received from application: size (bytes) = 786
20170720.08:03:33 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : Sending request to QuickBooks.
20170720.08:03:37 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : Response received from QuickBooks: size (bytes) = 93980
20170720.08:03:37 UTC : QBWebConnector.SOAPWebService.ProcessRequestXML() : Sending response back to application.
20170720.08:03:37 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : *** Calling receiveResponseXML() with following parameters:
20170720.08:03:37 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : wcTicket="d8bf5ba7-5e03-422a-a8ce-185cb86cf168"
20170720.08:03:37 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : response =
20170720.08:03:37 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : XML dump follows: -
<?xml version="1.0" ?>
<QBXML>
<QBXMLMsgsRs>
<GeneralDetailReportQueryRs statusCode="0" statusSeverity="Info" statusMessage="Status OK">
<ReportRet>
<ReportTitle>Open Invoices</ReportTitle>
<ReportSubtitle>As of July 20, 2017</ReportSubtitle>
<ReportBasis>Accrual</ReportBasis>
<NumRows>246</NumRows>
<NumColumns>14</NumColumns>
<NumColTitleRows>1</NumColTitleRows>
<ColDesc colID="1" dataType="STRTYPE">
<ColTitle titleRow="1" />
<ColType>Blank</ColType>
</ColDesc>
<TotalRow rowNumber="246">
<ColData colID="1" value="TOTAL" />
<ColData colID="9" value="1202982.55" />
<ColData colID="10" value="1089736.86" />
<ColData colID="11" value="1202982.55" />
</TotalRow>
</ReportData>
</ReportRet>
</GeneralDetailReportQueryRs>
</QBXMLMsgsRs>
</QBXML>
20170720.08:03:37 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : hresult=""
20170720.08:03:37 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : message=""
20170720.08:03:37 UTC : QBWebConnector.SOAPWebService.do_receiveResponseXML() : QBWC1042: ReceiveResponseXML failed
Error message: The request failed with HTTP status 413: Request Entity Too Large.
More info:
StackTrace = at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at QBWebConnector.localhost.WCWebServiceDoc.receiveResponseXML(String ticket, String response, String hresult, String message)
at QBWebConnector.localhost.WCWebService.receiveResponseXML(String ticket, String response, String hresult, String message)
at QBWebConnector.SOAPWebService.receiveResponseXML(String wcTicket, String response, String hresult, String message)
at QBWebConnector.WebService.do_receiveResponseXML(String wcTicket, String response, String hresult, String message, Boolean& success, Boolean& timeout)
Source = System.Web.Services
This is the error screen short.
Note : I have updated above logs and remove response data.I am getting complete response in log file but getting error on web connector for some requests.
I have implemented my service according to https://developer-static.intuit.com/qbSDK-current/doc/PDF/QBWC_proguide.pdf doc. receiveResponseXML method in CHAPTER 10.
Upvotes: 3
Views: 3008
Reputation: 27962
Your web server is rejecting the HTTP request with this message:
If you do a Google search, you'll find that by default WCF limits requests to 65 kilobytes maximum.
The request QuickBooks wants to send you is:
QuickBooks: size (bytes) = 93980
(or 93.98 kilobytes, roughly 30 kilobytes over the maximum size)
Reconfigure your WCF service/web server so that it allows larger payloads. Here's how:
Upvotes: 2