2013-07-16 2 views
3

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

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

ответ

5

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

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

1

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

Смежные вопросы