You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
3.0 KiB
C#
95 lines
3.0 KiB
C#
using System;
|
|
using System.Configuration;
|
|
using System.IO;
|
|
using System.Net;
|
|
using System.ServiceProcess;
|
|
using System.Text;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Quartz.NET.WindowsService
|
|
{
|
|
public partial class Service1 : ServiceBase
|
|
{
|
|
public Service1()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
protected override void OnStart(string[] args)
|
|
{
|
|
Task.Run(() =>
|
|
{
|
|
Start();
|
|
});
|
|
}
|
|
private void Start()
|
|
{
|
|
string path = AppDomain.CurrentDomain.BaseDirectory + "\\log\\";
|
|
//默认1分钟调用一次
|
|
int interval = 1;
|
|
string message = "";
|
|
string url = "";
|
|
while (true)
|
|
{
|
|
try
|
|
{
|
|
ConfigurationManager.RefreshSection("appSettings");
|
|
url = ConfigurationManager.AppSettings["url"];
|
|
interval = Convert.ToInt32(ConfigurationManager.AppSettings["interval"]);
|
|
|
|
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
|
|
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
|
|
{
|
|
Stream responseStream = response.GetResponseStream();
|
|
StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8);
|
|
message = streamReader.ReadToEnd();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
message= url+ ",interval:["+ interval + "],"+ ex.Message;
|
|
}
|
|
finally
|
|
{
|
|
try
|
|
{
|
|
message = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "__" + message + "\r\n";
|
|
WriteFile(path, DateTime.Now.ToString("yyyy-MM-dd") + ".txt", message, true);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
}
|
|
Thread.Sleep(new TimeSpan(0,interval,0));
|
|
}
|
|
}
|
|
}
|
|
|
|
private static void WriteFile(string path, string fileName, string content, bool appendToLast = false)
|
|
{
|
|
if (!Directory.Exists(path))//如果不存在就创建file文件夹
|
|
{
|
|
Directory.CreateDirectory(path);
|
|
}
|
|
|
|
using (FileStream stream = File.Open(path + fileName, FileMode.OpenOrCreate, FileAccess.Write))
|
|
{
|
|
byte[] by = Encoding.Default.GetBytes(content);
|
|
if (appendToLast)
|
|
{
|
|
stream.Position = stream.Length;
|
|
}
|
|
else
|
|
{
|
|
stream.SetLength(0);
|
|
}
|
|
stream.Write(by, 0, by.Length);
|
|
}
|
|
}
|
|
|
|
protected override void OnStop()
|
|
{
|
|
}
|
|
}
|
|
}
|