3

我只是对此感到好奇。我正在对该项目进行更改,即使用 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 块中捕获此异常并重试是否更好?

4

2 回答 2

5

如果 NS 服务器已经在处理来自同一用户的请求,则它会拒绝该请求。

如果您想确保您的请求成功,那么您必须捕获此异常并重试。

于 2013-07-17T06:01:51.130 回答
1

这不是我的经历。我们认为这与 netsuite 会话有关,但事实证明与此无关,实际上甚至没有击中 netsuite(根据 netsuite 日志)​​。结果我们试图在一个请求中执行太多命令,它完全拒绝将它发送到 netsuite。以前没见过这个错误,可能是新版本的新东西!

于 2016-06-03T08:05:47.680 回答