C# 写的windows服务 自动停止。
类似问题:http://zhidao.baidu.com/question/32710463.html我想写一个服务,使用UDP监听某端口,并在收到发来的信息后从中解析出...
类似问题:http://zhidao.baidu.com/question/32710463.html
我想写一个 服务,使用UDP监听某端口,并在收到发来的信息后从中解析出账号和密码,然后自动在本机创建一个账户。但该服务在install 以后,不能启动,手动启动的时候,会提示“windows服务启动后自动停止,如果没有什么事情可做”。
谢谢~~~
是install windows服务哈,不是安装文件。就是一个exe文件,用windwos提供的一个工具,导入到windwos服务中去。只能在 控制面板 -> 管理工具 -> 服务 中查看,启动或停止。 展开
我想写一个 服务,使用UDP监听某端口,并在收到发来的信息后从中解析出账号和密码,然后自动在本机创建一个账户。但该服务在install 以后,不能启动,手动启动的时候,会提示“windows服务启动后自动停止,如果没有什么事情可做”。
谢谢~~~
是install windows服务哈,不是安装文件。就是一个exe文件,用windwos提供的一个工具,导入到windwos服务中去。只能在 控制面板 -> 管理工具 -> 服务 中查看,启动或停止。 展开
4个回答
推荐于2016-02-05 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:25897
获赞数:1464981
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。
向TA提问 私信TA
关注
展开全部
public class logService : System.ServiceProcess.ServiceBase
{
public System.Diagnostics.EventLog evLog;
/// <summary>
/// 必需的设计器变量。
/// </summary>
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);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器
/// 修改此方法的内容。
/// </summary>
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();
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
/// <summary>
/// 设置具体的操作,以便服务可以执行它的工作。
/// </summary>
protected override void OnStart(string[] args)
{
// TODO: 在此处添加代码以启动服务。
this.evLog.WriteEntry("logService is Starting……………………………");
}
/// <summary>
/// 停止此服务。
/// </summary>
protected override void OnStop()
{
// TODO: 在此处添加代码以执行停止服务所需的关闭操作。
this.evLog.WriteEntry("logService is Stopping……………………………");
}
/// <summary>
/// 暂停
/// </summary>
protected override void OnPause()
{
this.evLog.WriteEntry("logService is Pausing……………………………");
}
/// <summary>
///继续
/// </summary>
protected override void OnContinue()
{
this.evLog.WriteEntry("logService is Continuing……………………………");
}
}
{
public System.Diagnostics.EventLog evLog;
/// <summary>
/// 必需的设计器变量。
/// </summary>
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);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器
/// 修改此方法的内容。
/// </summary>
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();
}
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
/// <summary>
/// 设置具体的操作,以便服务可以执行它的工作。
/// </summary>
protected override void OnStart(string[] args)
{
// TODO: 在此处添加代码以启动服务。
this.evLog.WriteEntry("logService is Starting……………………………");
}
/// <summary>
/// 停止此服务。
/// </summary>
protected override void OnStop()
{
// TODO: 在此处添加代码以执行停止服务所需的关闭操作。
this.evLog.WriteEntry("logService is Stopping……………………………");
}
/// <summary>
/// 暂停
/// </summary>
protected override void OnPause()
{
this.evLog.WriteEntry("logService is Pausing……………………………");
}
/// <summary>
///继续
/// </summary>
protected override void OnContinue()
{
this.evLog.WriteEntry("logService is Continuing……………………………");
}
}
展开全部
很明显你写的程序出现异常了,出现异常的时候系统服务就会起不来,这种异常种类很多,包括连不上数据库,打不开文件,创建文件失败等等,你可以在系统日志中查看到具体原因。建议做法,先不做成服务,用一个窗口来显示各步骤信息,确保没有错之后再转成服务,这样便于调试。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的程序有问题。例如有一些文件在创建INSTALL安装文件的时候没有导入进来。或者程序不完整。建立重新查看你的程序与程序文件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这证明你的程序有异常无法启动,你需要找到异常原因并调试。可以在关键代码上加上try……catch代码查看异常内容。服务程序不好调试,你可以先把Windows服务做成类库文件,用一个Windows窗体程序来引用并调试。或者你在catch代码中把异常内容写进某个文本文件,方便你查看。这就是程序设计时的日志管理、
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询