SoapHttpClientProtocol автоматически повторить попытку после исключения?

Мне просто интересно об этом. Я делаю изменения в этом проекте, который использует веб-сервис NetSuite, и иногда он генерирует случайное исключение 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, и кажется, что он автоматически повторяет попытку после возникновения исключения (код продолжает выполняться, без реализованного блока catch catch, без цикла while) до успешного завершения (status.isSuccess == true). Когда я запускаю его в режиме выпуска, в качестве службы Windows, журнал показывает, что он перестает работать после возникновения исключения.

Как это возможно? Лучше поймать это исключение в блоке try catch и повторить попытку?

2 ответа

Решение

NS Server отклоняет запрос, если его уже обрабатывает один и тот же пользователь.

Если вы хотите убедиться, что ваш запрос выполнен успешно, вам нужно перехватить это исключение и повторить попытку.

Это был не тот опыт, который у меня был. Мы думали, что это связано с сеансами netsuite, но оказалось, что это вообще не имеет к этому никакого отношения, и фактически даже не ударило по netsuite (согласно журналу netsuite). Оказалось, что мы пытались выполнить слишком много команд за один запрос, и он полностью отказался отправить его в netsuite. Никогда не видел эту ошибку раньше, может быть, это новая вещь в новой версии!

Другие вопросы по тегам