powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / при ошибке не может подключиться к tcp серверу
12 сообщений из 12, страница 1 из 1
при ошибке не может подключиться к tcp серверу
    #39047599
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можете дать рекомендации по коду и подсказать как мне в случае ошибки перезапускать опрос
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
///////////-------
using System.IO.Ports;
using System.Net;          //tcp
using System.Net.Sockets;  //tcp
using NLog;
using System.Xml; //xml
using Npgsql;  //pg
using System.Threading;
using System.Text.RegularExpressions;  //regexp

namespace Srvc_DOF_TCP
{
    public partial class Service1 : ServiceBase
    {
        #region global
        XmlDocument xml = new XmlDocument();    //xml
        static List<string> list = new List<string>(); //xml
        static private DataSet ds = new DataSet(); //pg com
        static private DataTable dt = new DataTable(); //pg com
        private System.Timers.Timer timer2;
        static String Mystr = null; //pg_query
        static int min = 5000; //time
        private static Logger logger = LogManager.GetCurrentClassLogger(); //log
        object[,] arr = new object[2, 2];
        static List<object[,]> listTcp = new List<object[,]>(); //xml
        string[,] myArr = new string[9, 2];
        static List<DoWork> allListeners; //list_of_com
        string my_name = Environment.MachineName;
        #endregion


        public Service1()
        {
            InitializeComponent();
            XMLReader();
        }


        #region Xml
        public void XMLReader()
        {
            try
            {
                xml.Load("c:\\DATA\\server_info_dof.xml");
                foreach (XmlNode n in xml.SelectNodes("/server_info"))
                {
                    list = new List<string>();
                    list.Add(n.SelectSingleNode("server").InnerText);
                    list.Add(n.SelectSingleNode("port").InnerText);
                    list.Add(n.SelectSingleNode("user_id").InnerText);
                    list.Add(n.SelectSingleNode("password").InnerText);
                    list.Add(n.SelectSingleNode("database").InnerText);
                    list.Add(n.SelectSingleNode("table").InnerText);        //5
                    list.Add(n.SelectSingleNode("tcpenable").InnerText);    //6
                    list.Add(n.SelectSingleNode("opcenable").InnerText);    //7
                    list.Add(n.SelectSingleNode("comenable").InnerText);    //8
                    list.Add(n.SelectSingleNode("value").InnerText);        //9
                    list.Add(n.SelectSingleNode("debug_mode").InnerText);        //10
                    list.Add(n.SelectSingleNode("name_in_db").InnerText);        //11
                }
            }
            catch (Exception msg)
            {
                logger.Trace(msg);
                return;
            }
        }
        #endregion

        #region tcpconnect
        private void SelectCom()  //com port
        {
            try
            {
                if (list[11] != "0")
                {
                    my_name = list[11].ToString();
                }
                NpgsqlConnection conn = new NpgsqlConnection(("Server=" + list[0] + ";Port=" + list[1] + ";User Id=" + list[2] + ";Password=" + list[3] + ";Database=" + list[4] + ";"));
                string sql = " SELECT   \"ID_TagName\" as id, \"F_ComPortIPAdress\",  \"F_ComQuery\", \"F_ComPort\",  \"F_ParseFunction\", \"F_TagReadTime\"  ,  \"F_AnswerLenght\"       FROM ";
                sql += "\"SC_Tag\".\"T_TagName\" as tn,\"SC_Tag\".\"T_HardWareTag\" as hw , \"SC_Tag\".\"T_RealHardWare\" as rh            where  rh.\"ID_RealHardWare\" =   ";
                sql += "hw.\"F_RealHardWare_ID\"   and tn.\"F_HardWare_ID\" = hw.\"F_TagName_ID\"    and \"F_ServerName\"  =\'" + my_name + "\' and \"F_ComPortIPAdress\" != '127.0.0.1' ";
                if (list[10] == "1")
                {
                    logger.Trace("start select " + sql);
                }
                NpgsqlDataAdapter da = new NpgsqlDataAdapter(sql, conn);
                ds.Reset();
                da.Fill(ds);
                dt = ds.Tables[0];
                if (list[10] == "1")
                {
                    logger.Trace(dt.Rows[0][2]);
                }
                if (ds.Tables[0] != null)
                {
                    InitAll();
                }

            }
            catch (Exception msg)
            {
                logger.Trace(msg);
                return;
            }
        }

        private void InitAll()
        {
            try
            {
                allListeners = new List<DoWork>();

                for (int xx = 0; xx < ds.Tables[0].Rows.Count; ++xx)
                {

                    string server = dt.Rows[xx][1].ToString();
                    string message = dt.Rows[xx][2].ToString() + "\r";
                    int port = Convert.ToInt32(dt.Rows[xx][3]);
                    int idcom = Convert.ToInt32(dt.Rows[xx][0]);
                    string parse = dt.Rows[xx][4].ToString();
                    int dlina = Convert.ToInt32(dt.Rows[xx][6]);
                    allListeners.Add(new DoWork(server, message, port, idcom, parse, dlina));
                }

                min = Convert.ToInt32(dt.Rows[0][5]);
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    if (Convert.ToInt32(dt.Rows[i][5]) < min)
                        min = Convert.ToInt32(dt.Rows[i][5]);
                }

                this.timer2 = new System.Timers.Timer();
                this.timer2.Enabled = true;
                this.timer2.Interval = min;

                this.timer2.Elapsed += new System.Timers.ElapsedEventHandler(this.timer2_Elapsed);
                this.timer2.AutoReset = true;
                this.timer2.Start();

            }
            catch (Exception msg)
            {
                logger.Trace(msg);
                return;
            }
        }
        private void timer2_Elapsed(object sender, EventArgs e)
        {
            try
            {
                if (list[10] == "1")
                {
                    logger.Trace("timer2_Elapsed  OPCTagIntoNPG();");
                }

                foreach (DoWork comListener in allListeners)
                {
                    comListener.ThreadStart();
                    Thread.Sleep(2000);
                    comListener.ThreadStop();
                }

            }
            catch (Exception msg)
            {
                logger.Trace(msg);
                return;
            }

        }

        internal class DoWork
        {
            string SERV, MES, ParseGlob;
            private bool doWork;
            private System.Threading.Thread thread;
            readonly EventWaitHandle wh = new AutoResetEvent(false);
            int IdCom, Port, ansLen;
            Regex rxNums = new Regex(@"^\d+$");

            internal DoWork(String server, String message, Int32 port, Int32 idcom, String Parse, Int32 dlina)
            {
                SERV = server;
                MES = message;
                Port = port;
                IdCom = idcom;
                ansLen = dlina;
                if (Parse != "")
                    ParseGlob = Parse;
            }
            public void ThreadStart()
            {
                doWork = true;
                thread = new Thread(Execute);
                thread.Start();
            }
            public void ThreadStop()
            {
                doWork = false;
                wh.Set();
            }
            void Execute()
            {
                try
                {
                    if (doWork)
                        Connect(SERV, MES, Port);
                }
                catch (Exception msg)
                {
                    logger.Trace("Execute() " + msg);
                    return;
                }
            }

            public void Connect(String server, String message, Int32 port)
            {
                try
                {
                    // Create a TcpClient.
                    // Note, for this client to work you need to have a TcpServer 
                    // connected to the same address as specified by the server, port
                    // combination.

                    // Int32 port = 4007;
                    TcpClient client = new TcpClient(server, port);

                    // Translate the passed message into ASCII and store it as a Byte array.
                    Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);

                    // Get a client stream for reading and writing.
                    //  Stream stream = client.GetStream();

                    NetworkStream stream = client.GetStream();

                    // Send the message to the connected TcpServer. 
                    stream.Write(data, 0, data.Length);

                    //   logger.Trace("Sent: {0}", message);
                    if (list[10] == "1")
                    {
                        logger.Trace("Sent: {0}", message);
                    }
                    doWork = false;
                    // Receive the TcpServer.response.
                    //  Thread.Sleep(2000);   
                    // Buffer to store the response bytes.
                    data = new Byte[256];

                    // String to store the response ASCII representation.
                    String responseData = String.Empty;

                    // Read the first batch of the TcpServer response bytes.
                    Int32 bytes = stream.Read(data, 0, data.Length);
                    responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
                    responseData = responseData.Substring(0, responseData.Length - 1);
                    string isdig = null;
                    isdig = responseData.Substring(7);
                    string hash = responseData.Substring(1, 3);
                    string hash2 = message.Substring(1, 3);
                    string end = responseData.Substring(responseData.Length - 1, 1);

                    if (list[10] == "1")
                    {
                        logger.Trace("Received: {0} ", responseData);
                    }
                    if (responseData[0] == '$' && responseData.Length <= ansLen)
                    {
                        //   logger.Trace("e " + end + String.Equals(end, "Y"));
                        if (String.Equals(end, "Y"))
                        {
                            // logger.Trace("ok");
                            NpgsqlConnection conn = new NpgsqlConnection(("Server=" + list[0] + ";Port=" + list[1] + ";User Id=" + list[2] + ";Password=" + list[3] + ";Database=" + list[4] + ";"));
                            conn.Open();
                            Mystr = ("INSERT INTO " + list[5] + "(\"F_TagName_ID\"," + list[9] + ",\"F_Date\")  VALUES (" + IdCom.ToString() + ",0,\'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\')");
                            //MessageBox.Show(Mystr);

                            if (list[10] == "1")
                            {
                                logger.Trace("0 " + Mystr);
                            }
                            NpgsqlCommand command = new NpgsqlCommand(Mystr, conn);
                            int rowsaffected;
                            rowsaffected = command.ExecuteNonQuery();
                            conn.Close();

                            doWork = true;
                            // Close everything.
                            stream.Close();
                        }
                        if (rxNums.IsMatch(isdig))
                        {
                            NpgsqlConnection conn = new NpgsqlConnection(("Server=" + list[0] + ";Port=" + list[1] + ";User Id=" + list[2] + ";Password=" + list[3] + ";Database=" + list[4] + ";"));
                            conn.Open();
                            if (ParseGlob != "")
                                Mystr = ("INSERT INTO " + list[5] + "(\"F_TagName_ID\"," + list[9] + ",\"F_Date\")  VALUES (" + IdCom.ToString() + ",(SELECT * FROM " + ParseGlob + "(\'" + responseData + "\')),\'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\'   )");
                            else Mystr = ("INSERT INTO " + list[5] + "(\"F_TagName_ID\"," + list[9] + ",\"F_Date\")  VALUES (" + IdCom.ToString() + ",\'" + responseData + "\',\'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\'   )");


                            if (list[10] == "1")
                            {
                                logger.Trace(Mystr);
                            }
                            NpgsqlCommand command = new NpgsqlCommand(Mystr, conn);
                            int rowsaffected;
                            rowsaffected = command.ExecuteNonQuery();
                            conn.Close();

                            doWork = true;
                            // Close everything.
                            stream.Close();
                            client.Close();
                        }
                    }
                    else
                    {                        
                        stream.Close();
                        client.Close();
                        logger.Trace("port_DataReceived " + responseData);
                        responseData = "";
                        return;
                    }


                }
                catch (ArgumentNullException e)
                {
                    logger.Trace("ArgumentNullException: {0}", e);
                    return;
                }
                catch (SocketException e)
                {
                    logger.Trace("SocketException: {0}", e);
                    return;
                }
            }
            public bool ThreadState()
            {
                if (doWork)
                    return true;
                else return false;
            }
        }

        #endregion


        #region start\stop
        protected override void OnStart(string[] args)
        {
            try
            {
                if (list[6] == "1")
                    SelectCom();
                if (list[10] == "1")
                {
                    logger.Trace("start");
                }
            }

            catch (Exception msg)
            {
                logger.Trace(msg);
                return;
            }
        }

        protected override void OnStop()
        {
            try
            {
                if (list[6] == "1")
                {
                    foreach (DoWork comLisener in allListeners)
                    {
                        comLisener.ThreadStop();
                    }
                }
                base.OnStop();
                if (list[10] == "1")
                {
                    logger.Trace("stop");
                }
            }
            catch (Exception msg)
            {
                logger.Trace(msg);
                return;
            }
        }
        #endregion
    }
}

...
Рейтинг: 0 / 0
при ошибке не может подключиться к tcp серверу
    #39047867
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoomUnit, про "крофф из глаз" уже было?
по коду...
XMLReader() - WTF!? Смотреть Application.Settings / Serialize / DeSerialize Xml
=\'" + my_name + "\' и т.п. Смотреть Using parameters in a query ( http://www.npgsql.org/doc/manual-2.2.html ), сами строки в ресурсы затолкать... ну или еще как...
dt.Rows[xx][1] и т.п. может какой простой маппер (хоть самопальный... накуй вам эти дататаблы) посмотреть... ну и опирайтесь на имена, а не на id
как-то разделить запросы, парсинг ответов, запись в базу...
У вас есть какиенить требования к версии дотнота? я бы зарядил ваш workflow в TPL DataFlow... (возможно сделал бы там обработку ошибок...
Обертка для сервисов http://topshelf-project.com/

Можно забубенить очередь (карусель) из заданий... Ну а вообще... обработка ошибок... логика при срабатывании таймера, когда еще предыдущий пакет обработки не завершился - зависит от ваших задач
...
Рейтинг: 0 / 0
при ошибке не может подключиться к tcp серверу
    #39048456
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoomUnit, код ужасный. 1) Избавься от общих переменных ds, dt, Mystr и прочих заменив их на локальные переменные и аргументы функций.

2) Затем, как уже правильно отметил buser, переделай систему конфигурации. Условие if (config.DebugMode) читается лучше чем if (list[10] == "1") и не зависит от порядка параметров, который возможно захочется изменить. Заодно убери харкод пути к файлу конфигурации. Проще исходить из того что он находится рядом с экзешником или передавать путь к нему через аргументы командной строки.

3) Вызывает вопросы твоя "многопоточность". Метод ThreadStop только делает вид что он что-то останавливает. EventWaitHandle который по идее мог бы служить таким сигналом внутри Execute, Connect не проверятся. Далее зачем Thread.Sleep(2000) внутри timer2_Elapsed? Если это попытка ограничить поток двумя секундами, то это не работает.

4) Сделай корректное освобождение ресурсов (NpgsqlConnection, TcpClient, NetworkStream) внутри Connect с помощью using и/или try/finally.
...
Рейтинг: 0 / 0
при ошибке не может подключиться к tcp серверу
    #39049125
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
try\finaly очень в тему.
кст ошибка была в
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
       else
                    {                        
                        //stream.Close();
                        //client.Close();
                        logger.Trace("port_DataReceived " + responseData);
                        responseData = "";
                        return;
                    }


я обрывал соединение, а затем пытался снова прочитать
...
Рейтинг: 0 / 0
при ошибке не может подключиться к tcp серверу
    #39049135
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кст
Код: c#
1.
2.
3.
4.
5.
6.
   conn.Close();

                            doWork = true;
                            // Close everything.
                            stream.Close();
                            client.Close();


это нормальное освобождение ресурсов?
...
Рейтинг: 0 / 0
при ошибке не может подключиться к tcp серверу
    #39049142
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а топшел это что такое?
...
Рейтинг: 0 / 0
при ошибке не может подключиться к tcp серверу
    #39049317
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoomUnitэто нормальное освобождение ресурсов?
Не совсем т.к. их нужно освобождать в случае когда нет исключений и когда они есть. Поэтому нужен using или try/finally.

DoomUnitа топшел это что такое?
Библиотека упрощающая создание сервисов.
...
Рейтинг: 0 / 0
при ошибке не может подключиться к tcp серверу
    #39059125
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а про serialaze - это в AssemblyInfo.cs хранить настройки приложения?
...
Рейтинг: 0 / 0
при ошибке не может подключиться к tcp серверу
    #39059230
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по поводу XmlReader - посмотрел на Deserialize - так там еще страшнее получается
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
//Settings.cs

using System.IO;
using System.Xml.Serialization;

namespace SampleWindowsService
{
    public class Settings
    {
        public static Settings GetSettings()
        {
            Settings settings = null;
            string filename = Globals.PathFile;
            if (File.Exists(filename))
            {
                using (FileStream fs = new FileStream(filename, FileMode.Open))
                {
                    XmlSerializer xser = new XmlSerializer(typeof(Settings));
                    settings = (Settings)xser.Deserialize(fs);
                    fs.Close();
                }
            }
            else settings = new Settings();

            return settings;
        }

        public string Server { get; set; }
        public string User { get; set; }
    }

}
//Program.cs
    class Program
    {
        private static Logger logger = LogManager.GetCurrentClassLogger(); //log
        static Settings _settings = null;
       

        static void Main(string[] args)
        {
           _settings = Settings.GetSettings();
           _initControlls();
        }

        private static void _initControlls()
        {
            logger.Debug("server at {0}", _settings.Server);
            logger.Debug("user at {0}", _settings.User);
        }
    }


у меня то решение проще получалось )))
...
Рейтинг: 0 / 0
при ошибке не может подключиться к tcp серверу
    #39059564
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoomUnitа про serialaze - это в AssemblyInfo.cs хранить настройки приложения?
Никакой связи между AssemblyInfo.cs и хранением настроек не существует.

DoomUnitпо поводу XmlReader - посмотрел на Deserialize - так там еще страшнее получается. у меня то решение проще получалось )))
Это тебе кажется из-за недостатка опыта.
...
Рейтинг: 0 / 0
при ошибке не может подключиться к tcp серверу
    #39059960
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а можете подсказать по поводу структуры.
думаю нужно приложение модульно разделить. это нужно классы разные писать?

предположим нужно хранить модуль подключения к бд, модуль работы с ком портом, модуль обработки данных, модуль записи в бд
...
Рейтинг: 0 / 0
при ошибке не может подключиться к tcp серверу
    #39059966
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вот так нормальная практика?

db.cs

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
using System;
using System.Xml;
using System.Net;
using NLog;

namespace ExampleService
{
    public class open_db
    {
        private static Logger logger = LogManager.GetCurrentClassLogger(); //log     
        static string Server, Port, User, Pass, db, Table, tcpenable, opcenable, comenable, value, name, debug;

        public static void XmlReader()
        {
            try
            {
                var m_strFilePath = Properties.Settings.Default.http_path;
                string xmlStr;
                XmlDocument xml = new XmlDocument();    //xml

                using (var wc = new WebClient())
                {
                    xmlStr = wc.DownloadString(m_strFilePath);
                }
                var xmlDoc = new XmlDocument();
                xml.LoadXml(xmlStr);

                foreach (XmlNode n in xml.SelectNodes(Properties.Settings.Default.setting_node))
                {
                    Server = n.SelectSingleNode("server").InnerText;
                    Port = n.SelectSingleNode("port").InnerText;
                    User = n.SelectSingleNode("user").InnerText;
                    Pass = n.SelectSingleNode("password").InnerText;
                    db = n.SelectSingleNode("database").InnerText;
                    Table = n.SelectSingleNode("table").InnerText;
                    tcpenable = n.SelectSingleNode("tcpenable").InnerText;
                    opcenable = n.SelectSingleNode("opcenable").InnerText;
                    comenable = n.SelectSingleNode("comenable").InnerText;
                    value = n.SelectSingleNode("value").InnerText;
                    debug = n.SelectSingleNode("debug_mode").InnerText;
                    if (debug == "1")
                    {
                       // logger = logger.Debug("server {0}", Server);
                        debug = "console";
                    }
                    else if (debug == "2")
                    {
                        debug = "service";
                    }
                    else if (debug == "0")
                    {
                        debug = "none";
                    }

                    name = n.SelectSingleNode("name_in_db").InnerText;
                }
                logger.Debug("server {0}", Server);
                logger.Debug("debug {0}", debug);
            }
            catch (Exception msg)
            {
                logger.Debug(msg);
                return;
            }
        }
    }
}


Program.cs
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
namespace ExampleService
{
    class Program
    {
        static void Main(string[] args)
        {
            open_db.XmlReader();
        }
    }
}
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / при ошибке не может подключиться к tcp серверу
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]