2017-08-10 93 views
0

我正在間歇性地面對此問題,但並非針對每個請求。你能幫我解決這個問題嗎?下面是我的發送請求到Salesforce REST API代碼:當我試圖把它產生異常,因爲請求Salesforce Rest API(upsert):System.Web.Services.Protocols.SoapException:EXCEEDED_MAX_SIZE_REQUEST:未認證請求的大小太大

loginResult = _sfCachingManager.GetLoginResult(); 
if (_loginResult != null && _loginResult.userInfo != null) 
{  
    _sforceService.Url = _loginResult.serverUrl; 
    _sforceService.SessionHeaderValue = new SessionHeader(); 
    _sforceService.SessionHeaderValue.sessionId = _loginResult.sessionId; 
    Account account = _sfModelMapping.AccountMapping(agency); 
    UpsertResult[] result = _sforceService.upsert("Agency_ID__c", new sObject[] { account }); 

有些時候,:

服務器無法處理EXCEEDED_MAX_SIZE_REQUEST:System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage消息,WebResponse響應,Stream responseStream,Boolean asyncCall)上的未認證請求的大小太大System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName,對象[]參數)

任何幫助,將不勝感激。

回答

1

你會得到這個錯誤發送請求到登錄端點,看起來你可能跨線程共享_sforceService,當它決定它需要登錄時,它將Url設置爲登錄端點,並且一個併發請求在另一個線程認爲它發送請求到已認證的端點實際上最終將其發送到登錄端點。仔細檢查你如何跨線程共享_sforceService

+0

我有50個請求不斷地出來他們48成功只有2得到例外。爲了確認,我必須在時間或其他方面完成一項要求? –

+0

是的,我們有併發請求,但我們只從salesforce獲取登錄結果一次,並將其存儲在緩存中,以及我們正在查看緩存的所有請求都不會每次都觸發salesforce。 –

+0

您是對的,一個請求會遇到不同的網址,即salesforce服務的默認網址。如何擺脫這一點? –