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();
}