how to create text file in window service

Posted by angel ansari on Stack Overflow See other posts from Stack Overflow or by angel ansari
Published on 2010-05-21T07:18:20Z Indexed on 2010/05/21 7:30 UTC
Read the original article Hit count: 200

Filed under:

Hi,

I have an XML file

<config>
<ServiceName>autorunquery</ServiceName>
<DBConnection>
    <server>servername</server>
    <user>xyz</user>
    <password>klM#2bs</password>
<initialcatelog>TEST</initialcatelog>

</DBConnection>
<Log>
    <logfilename>d:\testlogfile.txt</logfilename>
</Log>
<Frequency>
    <value>10</value>
    <unit>minute</unit>
</Frequency>
<CheckQuery>select * from credit_debit1 where station='Corporate'</CheckQuery>
<Queries total="3">
    <Query id="1">Update credit_debit1 set station='xxx' where id=2</Query>
<Query id="2">Update credit_debit1 set station='xxx' where id=4</Query>
<Query id="3">Update credit_debit1 set station='xxx' where id=9</Query>

</Queries>
</config>




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;
using System.Xml;

namespace Service1
{
    public partial class Service1 : ServiceBase
    {
        XmlTextReader reader = null;
        string path = null;
        FileStream fs = null;
        StreamWriter sw = null;
        public Service1()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            timer1.Enabled = true;
            timer1.Interval = 10000;
            timer1.Start();
            logfile("start service");


        }

        protected override void OnStop()
        {
            timer1.Enabled = false;
            timer1.Stop();
            logfile("stop service");

        }
        private void logfile(string content)
        {

            try
            {
                reader = new XmlTextReader("queryconfig.xml");//xml file name which is in current directory
                if (reader.ReadToFollowing("logfilename"))
                {
                    path = reader.ReadElementContentAsString();
                }
                fs = new FileStream(path, FileMode.Append, FileAccess.Write);
                sw = new StreamWriter(fs);
                sw.Write(content);
                sw.WriteLine(DateTime.Now.ToString());

            }
            catch (Exception ex)
            {
                sw.Write(ex.ToString());
                throw;
            }
            finally
            {
                if (reader != null)
                    reader.Close();
                if (sw != null)
                    sw.Close();
                if (fs != null)
                    fs.Close();
            }
        }

    }
}

My problem is that the file is not created.

© Stack Overflow or respective owner

Related posts about c#