Программа падает после отключения Квика


Программа падает после отключения Квика
Atom
21.08.2015


S# v.4.3.9
Пытаюсь обработать случай отключения Квика от сервера. Воспроизвести очень просто - нажимаю кнопку отсоединения в Квике.
В этом случае соединение переходит в состояние Failed.

При попытке повторного соединения выдается ошибка:
Код
2015/08/21 17:22:22.504|Error |BasketMessageAdapter|Ошибка подключения для ChannelMessageAdapter: StockSharp.Quik.Native.ApiException: Код ошибки QuikDisconnected Сообщение Net error: [10054] Connection reset by peer
2015/08/21 17:22:22.504| |QuikTrader|Connect
2015/08/21 17:22:22.504|Error |QuikTrader|System.InvalidOperationException: Процесс подключения был прервал из-за неожиданного отключения. ---> StockSharp.Quik.Native.ApiException: Код ошибки QuikDisconnected Сообщение Net error: [10054] Connection reset by peer
--- Конец трассировки внутреннего стека исключений ---
2015/08/21 17:22:22.660|Error |QuikTrans2QuikAdapter|System.ArgumentException: Не удалось подключиться к Quik. Возможно, в Quik-е не включена обработка внешних транзакций.
Имя параметра: path ---> StockSharp.Quik.Native.ApiException: Код ошибки Failed Сообщение Connection failed at step 4 with error 233.
в StockSharp.Quik.Native.ApiResultHelper.ThrowIfNeed(Int32 res, StringBuilder msg)
в StockSharp.Quik.Native.ApiWrapper.Connect(String path)
--- Конец трассировки внутреннего стека исключений ---
в StockSharp.Quik.Native.ApiWrapper.Connect(String path)
в StockSharp.Quik.QuikTrans2QuikAdapter.OnSendInMessage(Message message)
в StockSharp.Messages.MessageAdapter.SendInMessage(Message message)
2015/08/21 17:22:22.660|Error |BasketMessageAdapter|Ошибка подключения для ChannelMessageAdapter: System.ArgumentException: Не удалось подключиться к Quik. Возможно, в Quik-е не включена обработка внешних транзакций.
Имя параметра: path ---> StockSharp.Quik.Native.ApiException: Код ошибки Failed Сообщение Connection failed at step 4 with error 233.
в StockSharp.Quik.Native.ApiResultHelper.ThrowIfNeed(Int32 res, StringBuilder msg)
в StockSharp.Quik.Native.ApiWrapper.Connect(String path)
--- Конец трассировки внутреннего стека исключений ---
в StockSharp.Quik.Native.ApiWrapper.Connect(String path)
в StockSharp.Quik.QuikTrans2QuikAdapter.OnSendInMessage(Message message)
в StockSharp.Messages.MessageAdapter.SendInMessage(Message message)
2015/08/21 17:22:22.660|Error |QuikTrader|System.ArgumentException: Не удалось подключиться к Quik. Возможно, в Quik-е не включена обработка внешних транзакций.
Имя параметра: path ---> StockSharp.Quik.Native.ApiException: Код ошибки Failed Сообщение Connection failed at step 4 with error 233.
в StockSharp.Quik.Native.ApiResultHelper.ThrowIfNeed(Int32 res, StringBuilder msg)
в StockSharp.Quik.Native.ApiWrapper.Connect(String path)
--- Конец трассировки внутреннего стека исключений ---
в StockSharp.Quik.Native.ApiWrapper.Connect(String path)
в StockSharp.Quik.QuikTrans2QuikAdapter.OnSendInMessage(Message message)
в StockSharp.Messages.MessageAdapter.SendInMessage(Message message)

В Квике в это время вылезает сообщение, что слишком много клиентов пытаются выполнять внешние транзакции.
Но самое главное - падает все приложение (останавливается процесс vshost32.exe), единственное сообщение в окне Output - The program '[2936] my.vshost.exe' has exited with code -1073741819 (0xc0000005) 'Access violation'.

Если же после отсоединения Квика не пытаться соединиться снова, а просто закрыть Квик или отключить в нем внешние транзакции, приложение опять падает с той же ошибкой.
В версии 4.2.75 та же проблема была, но решалась закрытием Квика и открытием его снова, ничего не падало, а в новой версии проблему таким образом решить не удалось.

Проблема важная, т.к. Квики время от времени отключаются, и при этом падает все приложение, причем в непонятном месте.

Теги:


Спасибо:




Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy