为了账号安全,请及时绑定邮箱和手机立即绑定

C# Windows服务问题

C# Windows服务问题

C#
猫出没 2016-05-23 09:57:37
小弟使用C#写了个Windows服务,把代码放在控制台程序跑,没什么问题,但就是在服务里,然后添加服务的时候就启动不起来,老是提示这个错误:代码如下:protected override void OnStart(string[] args)         {while (true)                 {                    var databaseModels = MongoDBHelper.Select<DataBaseServerConfigures>(Query.EQ("SystemAddress", BsonValue.Create(systemAddress)), MongoConnType.Center);                    var dataModel = MongoDBHelper.Get<ActivityConfigures>(Query.EQ("ActivityName", BsonValue.Create("系统Ping设置")), MongoConnType.Center);                    if (databaseModels.Count > 0)                     {                        if (dataModel != null)                         {                            foreach (var item in databaseModels)                             {                                 MongoDBHelper.Insert<SystemPing>(                                    new SystemPing()                                     {                                         ThisIP = prohelper.GetIPAddress(),                                         PingIP = item.DataBaseName,                                         SystemAddress = item.SystemAddress,                                         Status = prohelper.GetSystemPing(item.DataBaseName),                                         DateTimeNow = DateTime.Now                                     }, MongoConnType.Center);                             }                             Thread.Sleep(dataModel.TntervalSecond);                         }                        else                         {                            foreach (var item in databaseModels)                             {                                 MongoDBHelper.Insert<SystemPing>(                                    new SystemPing()                                     {                                         ThisIP = prohelper.GetIPAddress(),                                         PingIP = item.DataBaseName,                                         SystemAddress = item.SystemAddress,                                         Status = prohelper.GetSystemPing(item.DataBaseName),                                         DateTimeNow = DateTime.Now                                     }, MongoConnType.Center);                             }                             Thread.Sleep(30000);                         }                     }                 }         }什么原因啊?望大神帮忙看下!!
查看完整描述

1 回答

?
习惯受伤

TA贡献885条经验 获得超1144个赞

OnStart中的代码必须放进一个单独的线程中执行,因为服务执行启动之后需要更新当前服务状态,如果在服务主线程中阻塞,就会导致查询服务状态失败,系统认为服务启动失败,所以抛除此错误
查看完整回答
1 反对 回复 2016-12-23
  • 1 回答
  • 0 关注
  • 1259 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信