public class logService : System.ServiceProcess.ServiceBase
{
public System.Diagnostics.EventLog evLog;
///
/// 必需的设计器变量。
///
private System.ComponentModel.Container components = null;
public logService()
{
// 该调用是 Windows.Forms 组件设计器所必需的。
InitializeComponent();
// TODO: 在 InitComponent 调用后添加任何初始化
//如果不存在日志************************************
if(!System.Diagnostics.EventLog.SourceExists("logService"))
{
EventLog.CreateEventSource("pingService","pingServiceLog");
}
this.evLog.Source="pingService";
//this.evLog.Log="pingServiceLog";
//**************************************************
}
// 进程的主入口点
static void Main()
{
System.ServiceProcess.ServiceBase[] ServicesToRun;
// 同一进程中可以运行多个用户服务。若要将
//另一个服务添加到此进程,请更改下行
// 以创建另一个服务对象。例如,
//
// ServicesToRun = New System.ServiceProcess.ServiceBase[] {new Service1(), new MySecondUserService()};
//
ServicesToRun = new System.ServiceProcess.ServiceBase[] { new logService() };
System.ServiceProcess.ServiceBase.Run(ServicesToRun);
}
///
/// 设计器支持所需的方法 - 不要使用代码编辑器
/// 修改此方法的内容。
///
private void InitializeComponent()
{
this.evLog = new System.Diagnostics.EventLog();
((System.ComponentModel.ISupportInitialize)(this.evLog)).BeginInit();
//
// evLog
//
this.evLog.Log = "Application";
//
// logService
//
this.CanHandlePowerEvent = true;
this.CanPauseAndContinue = true;
this.CanShutdown = true;
this.ServiceName = "pingService";
((System.ComponentModel.ISupportInitialize)(this.evLog)).EndInit();
}
///
/// 清理所有正在使用的资源。
///
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
///
/// 设置具体的操作,以便服务可以执行它的工作。
///
protected override void OnStart(string[] args)
{
// TODO: 在此处添加代码以启动服务。
this.evLog.WriteEntry("logService is Starting……………………………");
}
///
/// 停止此服务。
///
protected override void OnStop()
{
// TODO: 在此处添加代码以执行停止服务所需的关闭操作。
this.evLog.WriteEntry("logService is Stopping……………………………");
}
///
/// 暂停
///
protected override void OnPause()
{
this.evLog.WriteEntry("logService is Pausing……………………………");
}
///
///继续
///
protected override void OnContinue()
{
this.evLog.WriteEntry("logService is Continuing……………………………");
}
}
很明显你写的程序出现异常了,出现异常的时候系统服务就会起不来,这种异常种类很多,包括连不上数据库,打不开文件,创建文件失败等等,你可以在系统日志中查看到具体原因。建议做法,先不做成服务,用一个窗口来显示各步骤信息,确保没有错之后再转成服务,这样便于调试。
你的程序有问题。例如有一些文件在创建INSTALL安装文件的时候没有导入进来。或者程序不完整。建立重新查看你的程序与程序文件。
这证明你的程序有异常无法启动,你需要找到异常原因并调试。可以在关键代码上加上try……catch代码查看异常内容。服务程序不好调试,你可以先把Windows服务做成类库文件,用一个Windows窗体程序来引用并调试。或者你在catch代码中把异常内容写进某个文本文件,方便你查看。这就是程序设计时的日志管理、