Написали приложение WPF с использованием шлюзовой библиотеки SpectraCGate для торговли на фондовой бирже. Библиотеку скачали 06-Апр-2020 и в тот же день установили для тестового контура T1. Роутер работает как служба. (Открывали службы и смотрели проверяли - роутер работает.) Не выполняется подключение к тестовому контуру. Вызов функции
CGate.Open("ini=netrepl.ini;key=11111111")
;
выполняется. Ошибка подключения возникает на вызове функции Connection.Open() при попытке установки (как мы понимаем) соединения с роутером. Ниже приводим снипеты кода, в которых показывается, где возникает ошибка.
Подключение к серверу репликации:
/// <summary>
/// Непосредственно устанавливает соединение с сервером
/// репликации и управляет получением репликации.
/// </summary>
private void ConnectAndReceiveReplication(Object p_cancellationToken)
{
. . . . . . . .
Connection connToReplServer = new Connection("p2lrpcq://127.0.0.1:4001;app_name=appGetReplication");
Listener listenerFutInfo = new Listener(connToReplServer,
"p2repl://FORTS_FUTINFO_REPL;scheme=|FILE|fut_info.ini|CustReplScheme");
listenerFutInfo.Handler += new Listener.MessageHandler(FutInfoReplMessageHandler);
Listener listenerOrdersAggr = new Listener(connToReplServer,
"p2repl://FORTS_FUTAGGR20_REPL;scheme=|FILE|orders_aggr.ini|CustReplScheme");
listenerOrdersAggr.Handler += new Listener.MessageHandler(FutOrdersAggrReplMessageHandler);
Listener listenerFutTrades = new Listener(connToReplServer,
"p2repl://FORTS_FUTTRADE_REPL;scheme=|FILE|fut_trades.ini|CustReplScheme");
listenerFutTrades.Handler += new Listener.MessageHandler(FutTradesReplMessageHandler);
Listener listenerRtsIndex = new Listener(connToReplServer,
"p2repl://RTS_INDEX_REPL;scheme=|FILE|rts_index.ini|CustReplScheme");
listenerRtsIndex.Handler += new Listener.MessageHandler(RtsIndexReplMessageHandler);
Listener listenerRtsIndexLog = new Listener(connToReplServer,
"p2repl://RTS_INDEXLOG_REPL;scheme=|FILE|rts_indexlog.ini|CustReplScheme");
listenerRtsIndexLog.Handler += new Listener.MessageHandler(RtsIndexLogReplMessageHandler);
Listener listenerPosRepl = new Listener(connToReplServer,
"p2repl://FORTS_POS_REPL;scheme=|FILE|pos.ini|CustReplScheme");
listenerPosRepl.Handler += new Listener.MessageHandler(PosReplMessageHandler);
Listener listenerPartsRepl = new Listener(connToReplServer,
"p2repl://FORTS_PART_REPL;scheme=|FILE|part.ini|CustReplScheme");
listenerPartsRepl.Handler += new Listener.MessageHandler(PartsReplMessageHandler);
Listener listenerClrRepl = new Listener(connToReplServer,
"p2repl://FORTS_CLR_REPL;scheme=|FILE|clr.ini|CustReplScheme");
listenerClrRepl.Handler += new Listener.MessageHandler(ClrReplMessageHandler);
// Цикл проверки сосотояния соединения:
while (!cancelToken.IsCancellationRequested)
{
. . . . . . . .
else if (state == State.Closed)
{
connToReplServer.Open(""); // ЗДЕСЬ ОШИБКА СОЕДИНЕНИЯ.
}
. . . . . . . .
}
}
Подключение к серверу заявок.
/// <summary>
/// Непосредственно устанавливает соединение с сервером
/// заявок и выполняет разбор его ответных сообщений.
/// </summary>,.
public void ConnectAndCheckMqReplies(Object p_cancellationToken)
{
. . . . . . . . . .
Connection connToOrdersServer = new Connection("p2lrpcq://127.0.0.1:4001;app_name=appSendOrders");
PublisherForSendingOrders = new Publisher(connToOrdersServer, "p2mq://FORTS_SRV;category=FORTS_MSG;name=pubToSendOrders;timeout=60000;scheme=|FILE|forts_messages.ini|message");
Listener listenerToGetReplys = new Listener(connToOrdersServer, "p2mqreply://;ref=pubToSendOrders");
listenerToGetReplys.Handler += new Listener.MessageHandler(CheckMqReplyHandler);
// Цикл проверки сосотояния соединения:
while (!cancelToken.IsCancellationRequested)
{
. . . . . . . . . . . . . . . .
else if (state == State.Closed)
{
connToOrdersServer.Open(""); // ЗДЕСЬ ОШИБКА СОЕДИНЕНИЯ.
}
. . . . . . . . . . . . . . . .
}
}
У техподдержки, можно сказать, "оборвали" телефоны. Но чувствуем, что только с их помощью не справимся. Решили прибегнуть к вашей помощи, уважаемые разработчики. Заранее благодарим.