C#应用服务器!包括(消息服务器,更新服务器,应用服务器)

using  System;
using  System.Collections;
using  System.ComponentModel;
using  System.Data;
using  System.Diagnostics;
using  System.ServiceProcess;
using  System.Runtime.Remoting;
using  System.Windows.Forms;
using  System.Xml;
using  Tigerleq.Log;
using  Tigerleq.UserException;
using  Tigerleq.ServerConfig;

namespace  WindowsService
{
    
public partial class MainService : ServiceBase
    
{
        
private string m_sServerConfigFile = Application.StartupPath + "/Config/ServerConfig.xml";
        
private ServerParas m_serverParas = null;

        
public MainService()
        
{
            InitializeComponent();
            
try
            
{
                
this.m_serverParas = new ServerParas(this.m_sServerConfigFile);
            }

            
catch (System.Exception ex)
            
{
                LogOperate logOperate 
= new LogOperate();
                logOperate.OperateExp(ex, 
"应用服务构造函数中读取配置信息时出错""");
            }

        }


        
public void Start(string[] args)
        
{
            OnStart(args);
        }



        
protected override void OnStart(string[] args)
        
{
            
// TODO: 在此处添加代码以启动服务。
            LogOperate logOperate = null;
            LogInfo logInfo 
= new LogInfo("开始启动MainService服务""");
            logOperate 
= new LogOperate();
            logOperate.Write(logInfo);
            
try
            
{
                RemotingConfiguration.Configure(Application.StartupPath 
+ "/Config/" + this.m_serverParas.appServerParas.RemoteConfigFile,false);
                logInfo 
= new LogInfo("成功启动MainService服务""");
                logOperate 
= new LogOperate();
                logOperate.Write(logInfo);
            }

            
catch (AppErrException)
            
{
                
return;
            }

            
catch (Exception ex)
            
{
                LogErr logErr 
= new LogErr(ex, "在启动MainService服务时出错");
                logOperate 
= new LogOperate();
                logOperate.Write(logErr);
                
return;
            }

        }


        
protected override void OnStop()
        
{
            
// TODO: 在此处添加代码以执行停止服务所需的关闭操作。
            LogOperate logOperate = null;
            LogInfo logInfo 
= new LogInfo("停止MainService服务""");
            logOperate 
= new LogOperate();
            logOperate.Write(logInfo);
        }


        
private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        
{
            LogOperate logOperate 
= null;
            LogInfo logInfo 
= new LogInfo("登陆信息========================""");
            logOperate 
= new LogOperate();
            logOperate.Write(logInfo);
            GC.Collect();
        }



        
protected override void OnPause()
        
{
            LogOperate logOperate 
= null;
            LogInfo logInfo 
= new LogInfo("暂停MainService服务""");
            logOperate 
= new LogOperate();
            logOperate.Write(logInfo);
        }

        
protected override void OnContinue()
        
{
            LogOperate logOperate 
= null;
            LogInfo logInfo 
= new LogInfo("继续MainService服务""");
            logOperate 
= new LogOperate();
            logOperate.Write(logInfo);
        }



        
/// <summary>
        
/// 
        
/// </summary>
        
/// <param name="powerStatus"></param>
        
/// <returns></returns>

        protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus)
        
{
            LogOperate logOperate 
= null;
            LogInfo logInfo 
= new LogInfo("计算机的电源状态改变:" + powerStatus.ToString(), "");
            logOperate 
= new LogOperate();
            logOperate.Write(logInfo);
            
return true;
        }

        
protected override void OnShutdown()
        
{
            LogOperate logOperate 
= null;
            LogInfo logInfo 
= new LogInfo("操作系统关闭""");
            logOperate 
= new LogOperate();
            logOperate.Write(logInfo);
        }

    }

}

 

 

using  System.Collections.Generic;
using  System.ServiceProcess;
using  System.Text;
using  Tigerleq.Log;
using  System;

namespace  WindowsService
{
    
static class Program
    
{
        
/// <summary>
        
/// 应用程序的主入口点。
        
/// </summary>

        static void Main(string[] args)
        
{
           
// ServiceBase[] ServicesToRun;






            
// 同一进程中可以运行多个用户服务。若要将
            
// 另一个服务添加到此进程中,请更改下行以
            
// 创建另一个服务对象。例如,
            
//
            
//   ServicesToRun = new ServiceBase[] {new Service1(), new MySecondUserService()};
            
//






            LogOperate logOperate 
= null;
            
try
            
{
                LogInfo logInfo 
= new LogInfo("开始将服务加载到内存""");
                logOperate 
= new LogOperate();
                logOperate.Write(logInfo);

                
if (args.Length > 0)
                
{
                    MainService ms 
= new MainService();
                    ms.Start(
null);


                    
//PowerMsgService pms = new PowerMsgService();
                    
//pms.cmd_Start();
                    
//PowerUpdateService pus = new PowerUpdateService();
                    
//pus.cmd_Start();
                    Console.WriteLine("输入q退出!输入g收集内存!");
                    
char c;
                    
while ((c = (char)Console.Read()) != 'q')
                        
if (c == 'g') GC.Collect();
                }

                
else
                
{
                    System.ServiceProcess.ServiceBase[] ServicesToRun;
                    ServicesToRun 
= new System.ServiceProcess.ServiceBase[] new MainService()//, new PowerMsgService(), new PowerUpdateService() 
                    }
;
                    System.ServiceProcess.ServiceBase.Run(ServicesToRun);
                }

            }

            
catch (System.Exception ex)
            
{
                logOperate 
= new LogOperate();
                logOperate.OperateExp(ex, 
"在加载各服务时出错""");
            }



           
// ServicesToRun = new ServiceBase[] { new MainService() };

           
// ServiceBase.Run(ServicesToRun);
        }

    }

}

 

以上为服务程序:

 

一下为控制程序:

 

 

using  System;
using  System.IO;
using  System.Drawing;
using  System.Collections;
using  System.ComponentModel;
using  System.Windows.Forms;
using  System.ServiceProcess;
using  System.Runtime.Serialization;
using  System.Diagnostics;
using  System.Xml;
using  Tigerleq.ServerConfig;
using  Tigerleq.Log;
using  Tigerleq.UserException;

namespace  Window_ContralService
{
    
public partial class Form_Service_Main : Form
    
{

        
private string m_sServerConfigFile = Application.StartupPath + "/Config/ServerConfig.xml";
        
private ServerParas m_serverParas = null;    
        
public Form_Service_Main()
        
{
            InitializeComponent();

            
this.m_serverParas = new ServerParas(this.m_sServerConfigFile);
            
double dInterval = this.m_serverParas.appServerParas.AppConfigRefreshInterval * 1000;
            
this.tmrRefresh.Interval = int.Parse(dInterval.ToString());
            
this.tmrRefresh.Enabled = true;
        }


        
private void Form_Service_Main_FormClosing(object sender, FormClosingEventArgs e)
        
{
            
this.Visible = false;
            
this.WindowState = FormWindowState.Minimized;
            e.Cancel 
= true;
        }


        
private void notifyIcon1_DoubleClick(object sender, EventArgs e)
        
{
            Show_Form();
        }


        
private void Show_Form()
        
{

            
if (this.WindowState == FormWindowState.Minimized || this.WindowState == FormWindowState.Maximized)
            
{
                
this.WindowState = FormWindowState.Normal;
            }

            
this.Activate();
            
this.Visible = true;
        }


        
private void toolStripMenuItem_configset_Click(object sender, EventArgs e)
        
{
            Show_Form();
        }


        
private void toolStripMenuItem_exit_Click(object sender, EventArgs e)
        
{
            
this.Dispose();
        }


        
private void button_start_Click(object sender, EventArgs e)
        
{
            LogErr logErr 
= null;
            LogOperate logOperate 
= null;
            
try
            
{
                Start();
            }

            
catch (AppErrException)
            
{
                MessageBox.Show(
"在启动应用服务器服务时出错");
            }

            
catch (Exception ex)
            
{
                logErr 
= new LogErr(ex, "在启动应用服务器服务时出错");
                logOperate 
= new LogOperate();
                logOperate.Write(logErr);
                MessageBox.Show(
"在启动应用服务器服务时出错");
            }

        }


        
private void button_pause_Click(object sender, EventArgs e)
        
{
            LogErr logErr 
= null;
            LogOperate logOperate 
= null;
            
try
            
{
                
using (ServiceController sc = new ServiceController(this.m_serverParas.appServerParas.AppServiceName))
                
{
                    
if (sc.Status == ServiceControllerStatus.Running)
                    
{

                        
if (sc.CanPauseAndContinue)
                        
{
                            sc.Pause();
                        }

                        
else
                        
{
                            MessageBox.Show(
"当前服务不能暂停!""提示");
                            
return;
                        }

                    }

                }

                
this.RefreshService();
            }

            
catch (AppErrException)
            
{
                MessageBox.Show(
"在暂停应用服务器服务时出错");
            }

            
catch (Exception ex)
            
{
                logErr 
= new LogErr(ex, "在暂停应用服务器服务时出错");
                logOperate 
= new LogOperate();
                logOperate.Write(logErr);
                MessageBox.Show(
"在暂停应用服务器服务时出错");
            }

        }


        
private void button_stop_Click(object sender, EventArgs e)
        
{
            LogErr logErr 
= null;
            LogOperate logOperate 
= null;
            
try
            
{
                
using (ServiceController sc = new ServiceController(this.m_serverParas.appServerParas.AppServiceName))
                
{
                    
if (sc.Status != ServiceControllerStatus.Stopped)
                    
{
                        
if (sc.CanShutdown)
                        
{
                            sc.Stop();
                        }

                        
else
                        
{
                            MessageBox.Show(
"当前服务不能停止!","提示");
                            
return;
                        }

                    }

                }

                
this.RefreshService();
            }

            
catch (AppErrException)
            
{
                MessageBox.Show(
"在停止应用服务器服务时出错");
            }

            
catch (Exception ex)
            
{
                logErr 
= new LogErr(ex, "在停止应用服务器服务时出错");
                logOperate 
= new LogOperate();
                logOperate.Write(logErr);
                MessageBox.Show(
"在停止应用服务器服务时出错");
            }

        }


        
private void button_refresh_Click(object sender, EventArgs e)
        
{
            LogErr logErr 
= null;
            LogOperate logOperate 
= null;
            
try
            
{
                
this.RefreshService();
            }

            
catch (AppErrException)
            
{
                MessageBox.Show(
"在刷新应用服务器状态时出错");
            }

            
catch (Exception ex)
            
{
                logErr 
= new LogErr(ex, "在刷新应用服务器状态时出错");
                logOperate 
= new LogOperate();
                logOperate.Write(logErr);
                MessageBox.Show(
"在刷新应用服务器状态时出错");
            }

        }


        
private void tmrRefresh_Tick(object sender, EventArgs e)
        
{
            LogErr logErr 
= null;
            LogOperate logOperate 
= null;
            
try
            
{
                
this.RefreshService();
            }

            
catch (AppErrException)
            
{
            }

            
catch (Exception ex)
            
{
                logErr 
= new LogErr(ex, "在刷新应用服务器状态时出错");
                logOperate 
= new LogOperate();
                logOperate.Write(logErr);
            }

        }




        
private void RefreshService()
        
{
            LogOperate logOperate 
= null;
            
//bool bAllServiceStart = true;
            
//bool bAllServiceStop = true;
            try
            
{
                GC.Collect();
                GC.Collect();
                
using (ServiceController sc = new ServiceController(this.m_serverParas.appServerParas.AppServiceName))
                
{
                    ServiceControllerStatus aa 
= sc.Status;
                    
if (sc.Status == ServiceControllerStatus.Running)
                    
{
                        
this.button_start.Enabled = false;
                        
this.button_pause.Enabled = true;
                        
this.button_stop.Enabled = true;

                        
this.label_start.Enabled = false;
                        
this.label_pause.Enabled = true;
                        
this.label_stop.Enabled = true;

                        
this.ToolStripMenuItem_start.Enabled = false;
                        
this.ToolStripMenuItem_pause.Enabled = true;
                        
this.ToolStripMenuItem_stop.Enabled = true;
                        
this.notifyIcon1.Icon = Icon.ExtractAssociatedIcon(@"ICO etwork.ico");
                        
//bAllServiceStop = false;
                    }

                    
else if (sc.Status == ServiceControllerStatus.Stopped)
                    
{
                        
this.button_start.Enabled = true;
                        
this.button_pause.Enabled = false;
                        
this.button_stop.Enabled = false;

                        
this.label_start.Enabled = true;
                        
this.label_pause.Enabled = false;
                        
this.label_stop.Enabled = false;

                        
this.ToolStripMenuItem_start.Enabled = true;
                        
this.ToolStripMenuItem_pause.Enabled = false;
                        
this.ToolStripMenuItem_stop.Enabled = false;
                        
this.notifyIcon1.Icon = Icon.ExtractAssociatedIcon(@"ICOstop.ico");
                        
this.tmrAutoStart.Enabled = true;
                       
// bAllServiceStart = false;
                    }

                    
else if (sc.Status == ServiceControllerStatus.Paused)
                    
{
                        
this.button_start.Enabled = true;
                        
this.button_pause.Enabled = false;
                        
this.button_stop.Enabled = true;

                        
this.label_start.Enabled = true;
                        
this.label_pause.Enabled = false;
                        
this.label_stop.Enabled = true;

                        
this.ToolStripMenuItem_start.Enabled = true;
                        
this.ToolStripMenuItem_pause.Enabled = false;
                        
this.ToolStripMenuItem_stop.Enabled = true;
                        
this.notifyIcon1.Icon = Icon.ExtractAssociatedIcon(@"ICOpause.ico");
                        
this.tmrAutoStart.Enabled = true;
                    }

                    
else
                    
{
                        
this.button_start.Enabled = false;
                        
this.button_pause.Enabled = false;
                        
this.button_stop.Enabled = false;
                        
this.ToolStripMenuItem_start.Enabled = false;
                        
this.ToolStripMenuItem_pause.Enabled = false;
                        
this.ToolStripMenuItem_stop.Enabled = false;
                        
//bAllServiceStart = false;
                    }

                }

                
//using (ServiceController sc = new ServiceController( this.m_serverParas.appServerParas.MsgServiceName ))
                
//{
                
//    if(sc.Status==ServiceControllerStatus.Running)
                
//    {
                
//        this.mnuStartMsgServer.Enabled = false;
                
//        this.mnuStopMsgServer.Enabled = true;
                
//        bAllServiceStop = false;
                
//    }
                
//    else if( sc.Status == ServiceControllerStatus.Stopped )
                
//    {
                
//        this.mnuStartMsgServer.Enabled = true;
                
//        this.mnuStopMsgServer.Enabled = false;
                
//        bAllServiceStart = false;
                
//    }
                
//    else
                
//    {
                
//        this.mnuStartMsgServer.Enabled = false;
                
//        this.mnuStopMsgServer.Enabled = false;
                
//        bAllServiceStart = false;
                
//    }
                
//}
                
//using (ServiceController sc = new ServiceController(this.m_serverParas.appServerParas.UpdateServiceName))
                
//{
                
//    if (sc.Status == ServiceControllerStatus.Running)
                
//    {
                
//        this.ToolStripMenuItem_startUpdate.Enabled = false;
                
//        this.ToolStripMenuItem_stopUpdate.Enabled = true;
                
//        bAllServiceStop = false;
                
//    }
                
//    else if (sc.Status == ServiceControllerStatus.Stopped)
                
//    {
                
//        this.ToolStripMenuItem_startUpdate.Enabled = true;
                
//        this.ToolStripMenuItem_stopUpdate.Enabled = false;
                
//        bAllServiceStart = false;
                
//    }
                
//    else
                
//    {
                
//        this.ToolStripMenuItem_startUpdate.Enabled = false;
                
//        this.ToolStripMenuItem_stopUpdate.Enabled = false;
                
//        bAllServiceStart = false;
                
//    }
                
//}
                
//if (bAllServiceStart)
                
//{
                
//    this.mnuitmStartAllService.Enabled = false;
                
//    this.mnuitmStopAllService.Enabled = true;
                
//}
                
//if (bAllServiceStop)
                
//{
                
//    this.mnuitmStopAllService.Enabled = false;
                
//    this.mnuitmStartAllService.Enabled = true;
                
//}
                
//if (!bAllServiceStart && !bAllServiceStop)
                
//{
                
//    this.mnuitmStartAllService.Enabled = true;
                
//    this.mnuitmStopAllService.Enabled = true;
                
//}
            }

            
catch (Exception ex)
            
{
                logOperate 
= new LogOperate();
                logOperate.OperateExp(ex, 
"在根据服务的当前状态更新控件状态时出错""");
            }

        }


        
private void tmrAutoStart_Tick(object sender, EventArgs e)
        
{
            LogErr logErr 
= null;
            LogOperate logOperate 
= null;
            
try
            
{
                Start();
                
this.tmrAutoStart.Enabled = false;
            }

            
catch (AppErrException)
            
{
            }

            
catch (Exception ex)
            
{
                logErr 
= new LogErr(ex, "在自动启动服务时出错");
                logOperate 
= new LogOperate();
                logOperate.Write(logErr);
            }

        }


        
public void Start()
        
{
            LogOperate logOperate 
= null;
            
try
            
{
                
using (ServiceController sc = new ServiceController(this.m_serverParas.appServerParas.AppServiceName))
                
{
                    
if (sc.Status == ServiceControllerStatus.Running)
                    
{
                        
return;
                    }

                    
if (sc.Status == ServiceControllerStatus.Paused)
                    
{
                        sc.Continue();
                    }

                    
else
                    
{
                        sc.Start();
                    }

                }

                
this.RefreshService();
            }

            
catch (Exception ex)
            
{
                logOperate 
= new LogOperate();
                logOperate.OperateExp(ex, 
"在启动应用服务器的服务时出错""");
            }

        }


    }

}

 

一些用到的类:

 

using  System;
using  System.IO;
using  System.Xml;
using  System.Text;
using  System.Net;
using  System.Windows.Forms;
using  Tigerleq.Log;

namespace  Tigerleq.ServerConfig
{
    
public class AppServerParas
    
{
        
属性定义

        
public AppServerParas(XmlNode p_nd)
        
{
            
try
            
{
                
this.m_sIP = p_nd["IP"].InnerText.Trim();
                
this.m_sPort = p_nd["Port"].InnerText.Trim();
                
this.m_sRemoteConfigFile = p_nd["RemoteConfigFile"].InnerText.Trim();
                
int iLp = 0;
                
this.m_sClientMainFormTitle = p_nd["ClientMainFormTitle"].InnerText.Trim();
                
this.m_sAppServiceName = p_nd["AppServiceName"].InnerText.Trim();
                
this.m_sMsgServiceName = p_nd["MsgServiceName"].InnerText.Trim();
                
this.m_sUpdateServiceName = p_nd["UpdateServiceName"].InnerText.Trim();
                
this.m_dAppConfigRefreshInterval = double.Parse(p_nd["AppConfigRefreshInterval"].InnerText);
            }

            
catch (System.Exception ex)
            
{
                LogOperate logOperate 
= new LogOperate();
                logOperate.OperateExp(ex, 
"在初始化应用服务配置参数类时出错""");
            }

        }


        
public AppServerParas()
        
{
            IPAddress[] arripAddress 
= Dns.Resolve(System.Environment.MachineName).AddressList;
            
this.m_sIP = arripAddress[0].ToString();

        }

        
public AppServerParas(AppServerParas p_appServerParas)
        
{
            
this.m_dAppConfigRefreshInterval = p_appServerParas.AppConfigRefreshInterval;
            
this.m_sAppServiceName = p_appServerParas.AppServiceName;
            
this.m_sClientMainFormTitle = p_appServerParas.ClientMainFormTitle;
            
this.m_sIP = p_appServerParas.IP;
            
this.m_sMsgServiceName = p_appServerParas.MsgServiceName;
            
this.m_sPort = p_appServerParas.Port;
            
this.m_sRemoteConfigFile = p_appServerParas.RemoteConfigFile;
            
this.m_sUpdateServiceName = p_appServerParas.UpdateServiceName;
        }

        
public void InputXmlDoc(XmlDocument p_xDoc, XmlNode p_nd)
        
{
            
try
            
{
                XmlNode ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "IP""");
                ndNew.InnerText 
= this.m_sIP;
                p_nd.AppendChild(ndNew);

                ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "Port""");
                ndNew.InnerText 
= this.m_sPort;
                p_nd.AppendChild(ndNew);

                ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "RemoteConfigFile""");
                ndNew.InnerText 
= this.m_sRemoteConfigFile;
                p_nd.AppendChild(ndNew);


                ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "ClientMainFormTitle""");
                ndNew.InnerText 
= this.m_sClientMainFormTitle;
                p_nd.AppendChild(ndNew);

                ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "AppServiceName""");
                ndNew.InnerText 
= this.m_sAppServiceName;
                p_nd.AppendChild(ndNew);

                ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "MsgServiceName""");
                ndNew.InnerText 
= this.m_sMsgServiceName;
                p_nd.AppendChild(ndNew);

                ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "UpdateServiceName""");
                ndNew.InnerText 
= this.m_sUpdateServiceName;
                p_nd.AppendChild(ndNew);

                ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "AppConfigRefreshInterval""");
                ndNew.InnerText 
= this.m_dAppConfigRefreshInterval.ToString();
                p_nd.AppendChild(ndNew);

            }

            
catch (System.Exception ex)
            
{
                LogOperate logOperate 
= new LogOperate();
                logOperate.OperateExp(ex, 
"在将应用服务配置参数存入xml文档中时出错""");
            }

        }

    }

}

 

 

 

using  System;
using  System.IO;
using  System.Xml;
using  System.Text;
using  System.Net;
using  System.Windows.Forms;
using  Tigerleq.Log;

namespace  Tigerleq.ServerConfig
{
    
public class ServerParas
    
{
        
属性定义

        
public ServerParas(string p_sFile)
        
{
            
try
            
{
                
this.m_sFile = p_sFile.Trim();
                XmlDocument xDoc 
= new XmlDocument();
                xDoc.Load(
this.m_sFile);
                XmlNode ndRoot 
= xDoc.DocumentElement;
                
this.m_appServerParas = new AppServerParas(ndRoot["AppServerParas"]);


                
//屏蔽了消息服务器,和更新服务器
                
//this.m_msgServerParas = new MsgServerParas(ndRoot["MsgServerParas"]);
                
//this.m_updateServerParas = new UpdateServerParas(ndRoot["UpdateServerParas"]);

                ndRoot 
= null;
                xDoc 
= null;
            }

            
catch (System.Exception ex)
            
{
                LogOperate logOperate 
= new LogOperate();
                logOperate.OperateExp(ex, 
"在初始化应用服务器配置类时出错""");
                logOperate 
= null;
            }

        }

        
public ServerParas(ServerParas p_serverParas)
        
{
            
this.m_appServerParas = new AppServerParas(p_serverParas.appServerParas);
        }

        
public ServerParas()
        
{
            
this.m_appServerParas = new AppServerParas();
            
this.m_msgServerParas = new MsgServerParas();
            
this.m_updateServerParas = new UpdateServerParas();
        }

        
public void Save()
        
{
            
try
            
{
                XmlDocument xDoc 
= new XmlDocument();
                XmlDeclaration xmlDecla 
= xDoc.CreateXmlDeclaration("1.0""GB2312""yes");
                xDoc.AppendChild(xmlDecla);

                XmlNode ndNew 
= xDoc.CreateNode(XmlNodeType.Element, "ServerParas""");
                xDoc.AppendChild(ndNew);
                ndNew 
= xDoc.CreateNode(XmlNodeType.Element, "AppServerParas""");
                xDoc[
"ServerParas"].AppendChild(ndNew);
                ndNew 
= xDoc.CreateNode(XmlNodeType.Element, "MsgServerParas""");
                xDoc[
"ServerParas"].AppendChild(ndNew);
                ndNew 
= xDoc.CreateNode(XmlNodeType.Element, "UpdateServerParas""");
                xDoc[
"ServerParas"].AppendChild(ndNew);
                
this.m_appServerParas.InputXmlDoc(xDoc, xDoc["ServerParas"]["AppServerParas"]);
                
this.m_msgServerParas.InputXmlDoc(xDoc, xDoc["ServerParas"]["MsgServerParas"]);
                
this.m_updateServerParas.InputXmlDoc(xDoc, xDoc["ServerParas"]["UpdateServerParas"]);

                
string sDirectory = this.m_sFile.Substring(0this.m_sFile.LastIndexOf("/"));
                Directory.CreateDirectory(sDirectory);

                XmlTextWriter xmlTextWriter 
= new XmlTextWriter(this.m_sFile, Encoding.Default);
                xmlTextWriter.Formatting 
= Formatting.Indented;
                xDoc.WriteTo(xmlTextWriter);
                xmlTextWriter.Flush();
                xmlTextWriter.Close();

                xmlTextWriter 
= null;
                xDoc 
= null;
            }

            
catch (System.Exception ex)
            
{
                LogOperate logOperate 
= new LogOperate();
                logOperate.OperateExp(ex, 
"在将配置信息写入文件中时出错""");
            }

        }

    }

}

 

 

using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.Xml;
using  Tigerleq.Log;

namespace  Tigerleq.ServerConfig
{
    
public class MsgServerParas
    
{
        
属性定义

        
public MsgServerParas(XmlNode p_nd)
        
{
            
try
            
{
                
this.m_sServerListenPort = p_nd["ServerListenPort"].InnerText;
                
this.m_sClientListenPort = p_nd["ClientListenPort"].InnerText;
                
this.m_iReceiveTimeOut = int.Parse(p_nd["ReceiveTimeOut"].InnerText);
                
this.m_iSendTiemOut = int.Parse(p_nd["SendTimeOut"].InnerText);
                
this.m_iMessageLen = int.Parse(p_nd["MessageLen"].InnerText);
                
this.m_sOnlineUsersFileName = p_nd["OnlineUsersFileName"].InnerText;
                
this.m_iFileMessageLen = int.Parse(p_nd["FileMessageLen"].InnerText);
                
this.m_dClearInterval = double.Parse(p_nd["ClearInterval"].InnerText);
                
this.m_dClientContactInterval = double.Parse(p_nd["ClientContactInterval"].InnerText);
                
this.m_sClearFileTime = p_nd["ClearFileTime"].InnerText;
                
this.m_dMonitorRefreshInterval = double.Parse(p_nd["MonitorRefreshInterval"].InnerText);
            }

            
catch (System.Exception ex)
            
{
                LogOperate logOperate 
= new LogOperate();
                logOperate.OperateExp(ex, 
"在初始化消息服务配置参数类时出错""");
                logOperate 
= null;
            }

        }

        
public MsgServerParas()
        
{
        }

        
public void InputXmlDoc(XmlDocument p_xDoc, XmlNode p_nd)
        
{
            
try
            
{
                XmlNode ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "ServerListenPort""");
                ndNew.InnerText 
= this.m_sServerListenPort;
                p_nd.AppendChild(ndNew);

                ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "ClientListenPort""");
                ndNew.InnerText 
= this.m_sClientListenPort;
                p_nd.AppendChild(ndNew);

                ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "ReceiveTimeOut""");
                ndNew.InnerText 
= this.m_iReceiveTimeOut.ToString();
                p_nd.AppendChild(ndNew);

                ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "SendTimeOut""");
                ndNew.InnerText 
= this.m_iSendTiemOut.ToString();
                p_nd.AppendChild(ndNew);

                ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "MessageLen""");
                ndNew.InnerText 
= this.m_iMessageLen.ToString();
                p_nd.AppendChild(ndNew);

                ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "OnlineUsersFileName""");
                ndNew.InnerText 
= this.m_sOnlineUsersFileName;
                p_nd.AppendChild(ndNew);

                ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "FileMessageLen""");
                ndNew.InnerText 
= this.m_iFileMessageLen.ToString();
                p_nd.AppendChild(ndNew);

                ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "ClearInterval""");
                ndNew.InnerText 
= this.m_dClearInterval.ToString();
                p_nd.AppendChild(ndNew);

                ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "ClientContactInterval""");
                ndNew.InnerText 
= this.m_dClientContactInterval.ToString();
                p_nd.AppendChild(ndNew);

                ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "ClearFileTime""");
                ndNew.InnerText 
= this.m_sClearFileTime.ToString();
                p_nd.AppendChild(ndNew);

                ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "MonitorRefreshInterval""");
                ndNew.InnerText 
= this.m_dMonitorRefreshInterval.ToString();
                p_nd.AppendChild(ndNew);

            }

            
catch (System.Exception ex)
            
{
                LogOperate logOperate 
= new LogOperate();
                logOperate.OperateExp(ex, 
"在将消息服务配置参数存入xml文档中时出错""");
            }

        }


    }

}

 

using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.Xml;
using  Tigerleq.Log;

namespace  Tigerleq.ServerConfig
{
    
public class UpdateServerParas
    
{
        
属性定义

        
public UpdateServerParas(XmlNode p_nd)
        
{
            
try
            
{
                
this.m_sUpdateFilesPath = p_nd["UpdateFilesPath"].InnerText;
                
this.m_sListenPort = p_nd["ListenPort"].InnerText;
                
this.m_iMultiThread = int.Parse(p_nd["MultiThread"].InnerText);
                
this.m_iReceiveTimeOut = int.Parse(p_nd["ReceiveTimeOut"].InnerText);
                
this.m_iSendTimeOut = int.Parse(p_nd["SendTimeOut"].InnerText);
                
this.m_iFileNameLen = int.Parse(p_nd["FileNameLen"].InnerText);
                
this.m_iUpdateType = int.Parse(p_nd["UpdateType"].InnerText);
            }

            
catch (System.Exception ex)
            
{
                LogOperate logOperate 
= new LogOperate();
                logOperate.OperateExp(ex, 
"在初始化自动更新服务的配置参数类时出错""");
                logOperate 
= null;
            }

        }

        
public UpdateServerParas()
        
{
        }

        
public void InputXmlDoc(XmlDocument p_xDoc, XmlNode p_nd)
        
{
            
try
            
{
                XmlNode ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "UpdateFilesPath""");
                ndNew.InnerText 
= this.m_sUpdateFilesPath;
                p_nd.AppendChild(ndNew);

                ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "ListenPort""");
                ndNew.InnerText 
= this.m_sListenPort;
                p_nd.AppendChild(ndNew);

                ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "MultiThread""");
                ndNew.InnerText 
= this.m_iMultiThread.ToString();
                p_nd.AppendChild(ndNew);

                ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "ReceiveTimeOut""");
                ndNew.InnerText 
= this.m_iReceiveTimeOut.ToString();
                p_nd.AppendChild(ndNew);

                ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "SendTimeOut""");
                ndNew.InnerText 
= this.m_iSendTimeOut.ToString();
                p_nd.AppendChild(ndNew);

                ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "FileNameLen""");
                ndNew.InnerText 
= this.m_iFileNameLen.ToString();
                p_nd.AppendChild(ndNew);

                ndNew 
= p_xDoc.CreateNode(XmlNodeType.Element, "UpdateType""");
                ndNew.InnerText 
= this.m_iUpdateType.ToString();
                p_nd.AppendChild(ndNew);

            }

            
catch (System.Exception ex)
            
{
                LogOperate logOperate 
= new LogOperate();
                logOperate.OperateExp(ex, 
"在将自动更新服务配置参数存入xml文档中时出错""");
            }

        }


    }

}

 

 

using  System;
using  System.Collections.Generic;
using  System.Text;

namespace  Tigerleq.ClientConfig
{
    
public class ClientParas
    
{
        
public static string IP = "";
        
public static string Port = "8000";
        
public static string UserNameFile = "UserName.txt";
        
private ClientParas()
        
{
        }

    }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值