2013-07-16 49 views
3

我只是好奇這件事。我正在對此項目進行更改,即使用NetSuite Web服務,有時會隨機拋出SoapException,「一次只能針對一個會話提出一個請求」。SoapHttpClientProtocol在異常之後自動重試?

private NetSuiteService _service; 

    SessionResponse response = _service.login(passport); //if SoapException, retries?? 
    Status status = response.status; 

Reference.cs: 
    public partial class NetSuiteService : 
System.Web.Services.Protocols.SoapHttpClientProtocol 

我的問題是:如果我在調試模式下,我跟蹤這個,和我打了F5,似乎異常被拋出(代碼繼續運行後,與沒有實施try catch塊自動重試,沒有while循環)直到成功(status.isSuccess == true)。當我在發佈模式下運行它時,作爲一個Windows服務,日誌顯示它在拋出異常後停止運行。

這怎麼可能?在try catch塊中捕獲這個異常並重試會更好嗎?

回答

5

如果服務器已經處理來自同一用戶的請求,NS服務器拒絕該請求。

如果您想確保您的請求成功,則必須捕獲此異常並重試。

1

這不是我的經驗。我們認爲這與netsuite會議有關,但事實證明這根本無關緊要,事實上甚至沒有觸及netsuite(根據netsuite日誌)。原來我們試圖在一個請求中執行太多命令,並且完全拒絕將它發送給netsuite。從未見過這個錯誤,可能是新版本的新事物!