Windows Service. Timer не срабатывает - C#
Формулировка задачи:
День добрый. Извините, если не в тот раздел пишу...
Проблема в следующем:
Решил написать простенькую службу в VS 2010 (До этого писал в Delphi), которая подключается к VPN и складывает ip на удалённый комп в txt, также она периодически повторяет процедуру, ибо частенько происходят обрывы.
В службе не запускается Timer. Если писать Windows Forms Application, то всё работает, а в службе таймер не срабатывает.
Заранее благодарю.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Linq; using System.Net; using System.ServiceProcess; using System.Text; namespace VpnConnectorService { public partial class VpnConnector : ServiceBase { public VpnConnector() { InitializeComponent(); } protected override void OnStart(string[] args) { Process.Start("cmd", @"/k rasdial xxx yyy zzz /Domain:AA & exit"); //подключение VPN-соединения System.Threading.Thread.Sleep(15000); //задержка String host = Dns.GetHostName(); //получение имени компьютера IPAddress ip = Dns.GetHostByName(host).AddressList[0]; //получение ip-адреса компьютера System.IO.File.WriteAllText(@"\\xxx\C$\Users\yyy\Desktop\IP-Home.txt", ip.ToString()); //создание/перезапись файла с ip-адресом timer1.Enabled = true; } protected override void OnStop() { timer1.Enabled = false; } private void timer1_Tick(object sender, EventArgs e) { Process.Start("cmd", @"/k rasdial xxx yyy zzz /Domain:AA & exit"); //подключение VPN-соединения System.Threading.Thread.Sleep(15000); //задержка String host = Dns.GetHostName(); //получение имени компьютера IPAddress ip = Dns.GetHostByName(host).AddressList[0]; //получение ip-адреса компьютера System.IO.File.AppendAllText(@"\\xxx\C$\Users\yyy\Desktop\IP-Home.txt", ip.ToString()); //создание/дополнение файла с ip-адресом } } }
Решение задачи: «Windows Service. Timer не срабатывает»
textual
Листинг программы
protected override void OnStart(string[] args) { Process.Start("cmd", @"/k rasdial xxx yyy zzz /Domain:AA & exit"); //подключение VPN-соединения System.Threading.Thread.Sleep(15000); //задержка String host = Dns.GetHostName(); //получение имени компьютера IPAddress ip = Dns.GetHostByName(host).AddressList[0]; //получение ip-адреса компьютера System.IO.File.WriteAllText(@"\\xxx\C$\Users\yyy\Desktop\IP-Home.txt", ip.ToString()); //создание/перезапись файла с ip-адресом timer1.Enabled = true; timer1.Intrerval = 1000; timer1.Start(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д