← Atrás

Код ошибки DllConnected Сообщение Терминал не подключен к серверу

ПоПереподключался своим кодом и решил попробовать


this.Trader.ReConnectionSettings.Interval = TimeSpan.FromSeconds(60);
this.Trader.ReConnectionSettings.WorkingTime = Exchange.Micex.WorkingTime;

//ошибка с этой и без этой линии
//this.Trader.ReConnectionSettings.WorkingTime = Exchange.Micex.WorkingTime;

После добавления этих линий, при попытке подключения при отсутствии соединения с сервером по причине ночи, выскакивает окошко с:

StockSharp.Quik.ApiException: Код ошибки DllConnected Сообщение Терминал не подключен к серверу

Зачем оно? Как от него избавиться?

Это информационное сообшение или ошибка? И, чем она чревата?

Comentarios (17)

Iniciar sesión o Crear cuenta, Inicie sesión o regístrese para dejar un comentario

esper
esper

Зачем оно? Как от него избавиться? Сама библиотека не должна выводить никаких окон, смотрите что у вас в обработчиках событий.

Игорь Бакулин
Игорь Бакулин

esper: Сама библиотека не должна выводить никаких окон, смотрите что у вас в обработчиках событий.

Ага. точно! только вы сами попробуйте закрыть квик с запущенным роботом. Эти десятки всяких окон, которые не успеваешь закрывать, как они лезут вновь конечно же робот сам пишет на экран. кто же еще... прочитать что в них не успеваешь, но даже если какие то буквы успели сложиться в слова, там билиберда про ошибки в каких-то DLL.

Alexander
Alexander

Игорь Бакулин:

esper: Сама библиотека не должна выводить никаких окон, смотрите что у вас в обработчиках событий.

Ага. точно! только вы сами попробуйте закрыть квик с запущенным роботом. Эти десятки всяких окон, которые не успеваешь закрывать, как они лезут вновь конечно же робот сам пишет на экран. кто же еще... прочитать что в них не успеваешь, но даже если какие то буквы успели сложиться в слова, там билиберда про ошибки в каких-то DLL.

Закрыл у себя, ничего не произошло. Ибо никаких окон в роботе я не вывожу, а всё пишу в лог.

Ещё раз - библиотека не выводит ничего в окна, только выдаёт события. Окна вы можете показывать только сами, никто кроме вас.

VassilSanych
VassilSanych

Alexander Mukhanchikov: Ещё раз - библиотека не выводит ничего в окна, только выдаёт события. Окна вы можете показывать только сами, никто кроме вас. Охотно верю, но странные зависимости (reference) Stocksharp.Algo от библиотек WPF (и других библиотек, связанных с UI) позволяют ей делать что заблагорассудится на уровне пользовательского интерфейса. Зачем тогда Stocksharp.Xaml?

Геннадий Ванин (Gennady Vanin)

A System.ArgumentException was caught: "Невозможно для колонки Выставлена (время) привести значение "12:49:11PM" к типу TimeSpan."

Поскольку такая колонка в таблице Заявки, экспортруемой в STOCKSHARP по DDE, то

Пока решил тем, что заменил

Trader.StopExport(new[] { Trader.SecuritiesTable, Trader.EquityPortfoliosTable, Trader.EquityPositionsTable, Trader.OrdersTable });

на

Trader.StopExport(new[] { Trader.SecuritiesTable, Trader.EquityPortfoliosTable, Trader.EquityPositionsTable });//, Trader.OrdersTable 
Геннадий Ванин (Gennady Vanin)

Зачем оно? Как от него избавиться? Сама библиотека не должна выводить никаких окон, смотрите что у вас в обработчиках событий. Выводит-то библиотека, в результате

Trader.ConnectionError += error => this.GuiAsync(() => MessageBox.Show(this, error.ToString()));

Только суть в том, что это не ошибка, а информационное сообщение Мне его не надо выводить Я и сам знаю, что терминал не подключен ночью к серверу

А ошибки - надо

Mikhail Sukhov
Mikhail Sukhov

VassilSanych: Охотно верю, но странные зависимости (reference) Stocksharp.Algo от библиотек WPF (и других библиотек, связанных с UI) позволяют ей делать что заблагорассудится на уровне пользовательского интерфейса.

Внедриться в Квик и сделать там Виндоуз стили для версии 6.4😂

VassilSanych
VassilSanych

Mikhail Sukhov: Внедриться в Квик и сделать там Виндоуз стили для версии 6.4😂 Вы опять плаваете в архитектуре библиотек своего же продукта. Для хакинга квика существует библиотека Stocksharp.Quik. ;) И, на сколько я понимаю, WPF к квику отношения не имеет. Основываясь на опыте работы со Spy++, квик не написан ни на .net, ни на Delphi. Во обоих случаях у него бы нормально именовались классы окон (правда в случае .net - динамически). А там жесть какая-то кривая с окнами. Скорее всего MFC или VB6.

Шутки шутками, а зависимости библиотек - это тоже часть архитектуры продукта. Для обработки бизнес-логики и генерации событий зависимости от библиотек UI не нужны.

esper
esper

VassilSanych: Шутки шутками, а зависимости библиотек - это тоже часть архитектуры продукта. Для обработки бизнес-логики и генерации событий зависимости от библиотек UI не нужны.

Зависимость от UI библиотек еще не говорит, что код будет > VassilSanych:

делать что заблагорассудится на уровне пользовательского интерфейса Не задумывались, что в этих библиотеках могут быть какие-то классы, которые можно использовать независимо от GUI?

VassilSanych
VassilSanych

esper: Не задумывались, что в этих библиотеках могут быть какие-то классы, которые можно использовать независимо от GUI? Если класс находится в специализированной библиотеке UI, значит его зона ответственности - UI (он предназначен, разработан, протестирован и развёртывается для UI). Использование "чужих" классов ведёт к бардаку. Бардак ведёт к неминуемой смерти проекта. PS Вот чё нашёл в подтверждение Сцепление модулей :)

Mikhail Sukhov
Mikhail Sukhov

VassilSanych: Использование "чужих" классов ведёт к бардаку.

Готов прислушать к экспертному мнению. Но экспертность надо как-то доказать. Пока я о вас знаю только то, что вы смогли в Гидре переделать форматирование строчек. Надо чуть побольше задачу🙂

esper
esper

Это не библиотека, это ваш пользовательский код, не хотите выводить окно - не выводите. Вам кто-то запрещает?

Игорь Бакулин
Игорь Бакулин

В примерах есть строчки

  1. Trader.ConnectionError += error => this.GuiAsync(() => MessageBox.Show(this, error.ToString()));
  2. Trader.ProcessDataError += ex => System.Diagnostics.Debug.WriteLine(ex);

если я правильно понимаю, то это и есть вывод всяких окон ошибок на экран? Внимательно прочитал раздел в документации - "Логирование" но к сожалению не смог понять, как можно записывать все эти сообщения например в файл. Кто знает, приложите пожалуйста рабочий пример - как выводить события в файл?

VassilSanych
VassilSanych

Игорь Бакулин: Кто знает, приложите пожалуйста рабочий пример - как выводить события в файл?

LogManager = new LogManager();
LogManager.Sources.Add(this);
var fileListener = new FileLogListener(
string.Format(CultureInfo.InvariantCulture, "{0:yyyyMMdd}.txt", DateTime.Today));
fileListener.Append = true;
LogManager.Listeners.Add(fileListener);
WriteLog(LogLevels.Info, "Запуск UI робота");
VassilSanych
VassilSanych

Я уже давным-давно ничего никому не доказываю. Прислушаться к моим словам или нет - это ваш личный выбор. Я не настаиваю.

Mikhail Sukhov
Mikhail Sukhov

VassilSanych: Я уже давным-давно ничего никому не доказываю. Прислушаться к моим словам или нет - это ваш личный выбор. Я не настаиваю.

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

Mikhail Sukhov
Mikhail Sukhov

Mikhail Sukhov:

Первоначально написал неправильно предложение😡