我对此很好奇。我正在对这个项目进行更改,即使用NetSuite Web服务,有时它会随机抛出一个SoapException,“一次只能对一个会话发出一个请求”。
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块中捕获此异常并重试是否更好?
答案 0 :(得分:5)
如果请求已经从同一用户处理了一个请求,NS服务器会拒绝该请求。
如果您想确保您的请求成功,则必须捕获此异常并重试。
答案 1 :(得分:1)
这不是我的经历。我们认为这与netsuite会议有关但事实证明与此无关,实际上甚至没有击中netsuite(根据netsuite日志)。原来我们试图在一个请求中执行太多命令,它完全拒绝将它发送给netsuite。以前从未见过这个错误,可能是新版本的新东西!