﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Отработка Connect / Reconnect</title>
  <id>~/topic/1431/otrabotka-connect--reconnect/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-18T21:30:44Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=1431" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/6569/</id>
    <title type="text">Спасибо. Но для особо тупых было бы неплохо упомянуть такую фичу в документации :-) </title>
    <published>2011-03-10T18:34:17Z</published>
    <updated>2011-03-10T18:34:17Z</updated>
    <author>
      <name>igork</name>
      <uri>https://stocksharp.com/users/6303/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Спасибо. Но для особо тупых было бы неплохо упомянуть такую фичу в документации :-)&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/6543/</id>
    <title type="text">this.objMainTrader.ReConnectionSettings.WorkingTime = Exchange.Rts.WorkingTime; По идее это означает...</title>
    <published>2011-03-10T04:00:30Z</published>
    <updated>2011-03-10T04:00:30Z</updated>
    <author>
      <name>Greene-nsk</name>
      <uri>https://stocksharp.com/users/27932/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;this.objMainTrader.ReConnectionSettings.WorkingTime = Exchange.Rts.WorkingTime;&lt;/p&gt;
&lt;p&gt;По идее это означает, что переподключение должно производиться только во время работы RTS. Естественно, ночью переподключения не будет.&lt;/p&gt;
&lt;p&gt;Попробуйте Exchange.Test.WorkingTime, которая не имеет ограничений времени.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/6541/</id>
    <title type="text">Михаил, в соответствии с примерами, дизайним форму, на которой две кнопки Connect и Disconnect. Поле...</title>
    <published>2011-03-09T21:48:01Z</published>
    <updated>2011-03-09T21:48:01Z</updated>
    <author>
      <name>igork</name>
      <uri>https://stocksharp.com/users/6303/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Михаил, в соответствии с примерами, дизайним форму, на которой две кнопки Connect и Disconnect. Полезной нагрузки нет.&lt;/p&gt;
&lt;p&gt;Код кнопки Connect:&lt;/p&gt;
&lt;p&gt;....&lt;/p&gt;
&lt;p&gt;if (this.objMainTrader == null)
{&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;this.objMainTrader = new SmartTrader(strLogin, strPWD, objIPEndPoint);
this.objMainTrader.Connected += () =&amp;gt; { this.SmartConnectStatusSucced(); };
this.objMainTrader.ConnectionError += error =&amp;gt; { this.SmartConnectStatusFailed(error); };
this.objMainTrader.ReConnectionSettings.Interval = TimeSpan.FromSeconds(10);

this.objMainTrader.ReConnectionSettings.ConnectDisconnectTimeOutInterval = TimeSpan.FromSeconds(60);

this.objMainTrader.ReConnectionSettings.ReConnectingAttemptCount = 1000; // здесь пробовал -1, на поведение не влияет

this.objMainTrader.ReConnectionSettings.WorkingTime = Exchange.Rts.WorkingTime;
this.objMainTrader.ReConnectionSettings.ConnectionAttemptError += error =&amp;gt;
                { this.SmartReConnectStatusFailed(error); };

this.objMainTrader.ReConnectionSettings.ConnectionRestored += () =&amp;gt;
                { this.SmartReConnectStatusSucced(); };
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;// try to connect to the server
if (!this.objMainTrader.IsConnected)
this.objMainTrader.Connect();&lt;/p&gt;
&lt;p&gt;.....&lt;/p&gt;
&lt;p&gt;Все функции, которые вызываются, тупо создают соединение с базой SQL Server и пишут сообщение с именем вызванной функции. Итого, что происходит.&lt;/p&gt;
&lt;p&gt;При нажатии кнопки Connect код аккуратно отрабатывает, и SmartConnectStatusSucced тоже.
Далее, на виртуальной машине (Tools -&amp;gt; Settings) отключаем сетевую карту. Очень быстро отрабатывает SmartConnectStatusFailed, в журнал записывается следующее сообщение:&lt;/p&gt;
&lt;p&gt;&amp;lt;Timeout detected. Check your internet connectivity or event handler code&amp;gt;.&lt;/p&gt;
&lt;p&gt;Далее я ожидаю, что в соответствии с настройками ReconnectionSettings, objMainTrader будет пытаться производить повторное подключение. Ждем 5 минут, но ничего не происходит. Выставленные в отладчике точки прерывания тоже не срабатывают.&lt;/p&gt;
&lt;p&gt;Обратно возвращаемся к настройкам виртуальной машины, и возвращаем на место сетевой адаптер. Сеть восстанавливается, но объект этого не замечает.&lt;/p&gt;
&lt;p&gt;Прошу подсказать, что делаю не так. Возможно, нужно запустить какие-то операции, обращаться к объекту и т.п., чтобы код переподключения заработал?&lt;/p&gt;
&lt;p&gt;P.S. Библиотеки версии 3.0.8.
P.P.S. Готов выложить проект, скриншоты и how to reproduce, но форум не позволяет.
P.P.P.S. Может ли причина заключаться в том, что тесты производятся в ночное время? :-) Если да, то исчезнет ли проблема, если подменить WorkingTime?&lt;/p&gt;
&lt;p&gt;Спасибо.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>