2013-07-16 23 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。从未见过这个错误,可能是新版本的新事物!