A configuration file you say?

If you say so....
zircon^2
gareth 2007-05-14 00:08:52 +00:00
parent 0834b097f6
commit 67e7d126f3
1 changed files with 41 additions and 2 deletions

View File

@ -1,6 +1,8 @@
using System; using System;
using System.Threading; using System.Threading;
using System.ServiceProcess; using System.ServiceProcess;
using System.Xml;
using System.IO;
public class OpenGridMasterService : System.ServiceProcess.ServiceBase { public class OpenGridMasterService : System.ServiceProcess.ServiceBase {
@ -21,11 +23,48 @@ public class OpenGridMasterService : System.ServiceProcess.ServiceBase {
protected override void OnStart(string[] args) protected override void OnStart(string[] args)
{ {
ServiceWorkerThread = new Thread(new ThreadStart(MainServiceThread));
ServiceWorkerThread.Start();
}
protected override void OnStop()
{
ServiceWorkerThread.Abort();
}
private void MainServiceThread()
{
try {
StreamReader reader=new StreamReader("opengrid-master-cfg.xml");
string configxml = reader.ReadToEnd();
XmlDocument doc = new XmlDocument();
doc.LoadXml(configxml);
XmlNode rootnode = doc.FirstChild;
if (rootnode.Name != "regions")
{
EventLog.WriteEntry("ERROR! bad XML in opengrid-master-cfg.xml - expected regions tag");
Console.WriteLine("Sorry, could not startup the service - please check your opengrid-master-cfg.xml file: missing regions tag");
(new ServiceController("OpenGridServices-master")).Stop();
}
for(int i=0; i<=rootnode.ChildNodes.Count; i++)
{
if(rootnode.ChildNodes.Item(i).Name != "region") {
EventLog.WriteEntry("nonfatal error - unexpected tag inside regions block of opengrid-master-cfg.xml");
(new ServiceController("OpenGridServices-master")).Stop();
}
}
} catch(Exception e) {
Console.WriteLine(e.ToString());
(new ServiceController("OpenGridServices-master")).Stop();
}
} }
public static void Main() public static void Main()
{ {
Console.WriteLine("Starting up OGS master service");
ServiceBase.Run(new OpenGridMasterService());
} }
} }