← Назад

Код ошибки 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 Сообщение Терминал не подключен к серверу

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

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

Комментарии (17)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

esper
esper

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

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

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

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

Alexander
Alexander

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

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

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

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

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

VassilSanych
VassilSanych

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

Геннадий Ванин (Gennady Vanin)
Геннадий Ванин (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)
Геннадий Ванин (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:

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