2017-12-12 2 views
3

내 사용자의 모든 목록을 가져 오는 코드가 있습니다. 이 코드는 항상 작동했지만 여전히 작동하지만 특정 상점에서 특정 수의 목록에 도달하면 오류가 발생합니다. 이 사용자가 40k + 목록 수가있는 경우 18,398 개의 목록을 넘지 않습니다. 나는 문제없이 같은 코드를 사용하는 것보다 많은 목록을 가져 왔습니다.eBay API C# 오류 14005

[12/12/2017 3:07:28 PM, Informational] 
<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <soap:Header> 
    <RequesterCredentials xmlns="urn:ebay:apis:eBLBaseComponents"> 
     <eBayAuthToken>******</eBayAuthToken> 
    </RequesterCredentials> 
    </soap:Header> 
    <soap:Body> 
    <GetSellerListRequest xmlns="urn:ebay:apis:eBLBaseComponents"> 
     <DetailLevel>ReturnAll</DetailLevel> 
     <MessageID>9c06db99-56ab-4ba4-ad4a-e38c34cee41e</MessageID> 
     <Version>981</Version> 
     <EndTimeFrom>2017-12-12T19:54:29.8672456Z</EndTimeFrom> 
     <EndTimeTo>2018-04-11T19:54:29.8672456Z</EndTimeTo> 
     <Pagination> 
     <EntriesPerPage>200</EntriesPerPage> 
     <PageNumber>93</PageNumber> 
     </Pagination> 
     <IncludeWatchCount>true</IncludeWatchCount> 
    </GetSellerListRequest> 
    </soap:Body> 
</soap:Envelope> 

<?xml version="1.0" encoding="UTF-8"?> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <soapenv:Body> 
    <soapenv:Fault> 
     <faultcode xmlns:ns1="http://xml.apache.org/axis/">ns1:Server</faultcode> 
     <faultstring>Web Service framework internal error.</faultstring> 
     <faultactor>http://www.ebay.com/ws/websvc/eBayAPI</faultactor> 
     <detail> 
     <FaultDetail> 
      <ErrorCode>14005</ErrorCode> 
      <Severity>Error</Severity> 
      <DetailedMessage>Web Service framework internal error. execute exception.</DetailedMessage> 
     </FaultDetail> 
     </detail> 
    </soapenv:Fault> 
    </soapenv:Body> 
</soapenv:Envelope> 

[12/12/2017 3:07:29 PM, Error] 
Web Service framework internal error. execute exception. 

상관 조언 :

var oContext = oContextMain(conSql); 
var call = new GetSellerListCall(oContext); 
call.DetailLevelList.Add(DetailLevelCodeType.ReturnAll); 
call.Pagination = new PaginationType() { EntriesPerPage = 200 }; 
call.EndTimeFrom = DateTime.UtcNow; 
call.EndTimeTo = DateTime.UtcNow.AddDays(Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["someSetting"])); 

call.IncludeWatchCount = true; 

do 
{ 
    call.Pagination.PageNumber++; 

    ItemTypeCollection items = call.GetSellerList(); 

오류 메시지가

call.GetSellerList (를)

에서 제공되는 라인은 이베이 로그의 메시지입니다 나를 큰 도움이 될 수 있습니다. 나는 붙어서 어디로 가야할지 모른다.

+0

여기에서의 상세한 설명과 예는 응답 계산 이상의 필터를 시도하거나 상품을 감소 기간 값을 감소시킨다. https://ebaydts.com/eBayKBDetails?KBid=858. 현재 링크가 오류 수정을 생성하는 데 도움이되지 않으면 다른 경로는 개발자 포럼입니다. 이 경우 도스가 될 수 있습니다. https://forums.developer.ebay.com/topics/getsellerlist.html – Programmer

+0

루프가 몇 번이나 호출됩니까? 그 사이에 잠을 자고 있습니까? – Ctznkane525

+0

DOS 일 가능성은 매우 낮습니다. 마찬가지로 똑같은 정확한 코드는 나에게 문제가되는 크기의 3 배 크기의 상점에서 작동한다고 말했다. – Roro

답변

0

판매자가 - GetSellerList을 사용하여 모든 목록을 가져 오는 코드 블록은 정확합니다.

이 API에 대한 응답 항목 (최대 200 개)에는 제한이 있으며 사용자가 구성한 날짜 범위를 초과 할 수 있습니다.

이 판매자는 지정된 기간 내에 더 많은 (> 200) 목록에있는 항목을 가질 수 있습니다.

하면이 문제를 해결하기 위해,

+0

예, 페이지 당 200 개의 항목으로 제한됩니다. 그런 다음 do 루프를 사용하여 각 페이지를 단계별로 설명합니다. 동일한 코드가 아무런 문제없이 80,000 개의 가치가있는 목록을 가지고있는 가게에 들어갔습니다. 그러나이 특별한 고객은 18,398 건의 기록과 같은 지점에서 항상 충돌합니다. – Roro

+1

이베이 시스템에서 오류가있는 것 같습니다. 어쩌면이 문제를 일으킨 결함 항목이 하나 이상있을 수 있습니다. 해당 페이지를 건너 뛰었습니까? 또한 "결함"페이지를로드하고 페이지 크기를 1로 설정하여 결함 항목을 가져올 수 있습니다. –

+0

@SirRufo 해당 페이지를 건너 뛰고 무슨 일이 일어나는지 보려고합니다. 감사. – Roro