使用C#写了个Windows服务 10

小弟使用C#写了个Windows服务,把代码放在控制台程序跑,没什么问题,但就是在服务里,然后添加服务的时候就启动不起来,老是提示这个错误:"等待XX服务的连接超时(30... 小弟使用C#写了个Windows服务,把代码放在控制台程序跑,没什么问题,但就是在服务里,然后添加服务的时候就启动不起来,老是提示这个错误:
"等待XX服务的连接超时(30000毫秒)"
代码如下:
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);
}
}

}
}
什么原因啊?望大神帮忙看下!!
展开
 我来答
开拓者kt00com
2016-05-23 · TA获得超过428个赞
知道小有建树答主
回答量:469
采纳率:0%
帮助的人:102万
展开全部
借花献佛:开机的时候,受控程序保证是没有启动的,而且你程序给它设置了让它启动,它可能也不会立即有响应(因为系统还忙着呢,根本顾不过来),你试试先加个延迟,启动服务的时候先等2分钟,再开始后面的逻辑。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光的雷咩咩
2016-05-23 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7888万
展开全部
加日志看错误消息。还有Windows系统日志有可能也记录了。
追问
windows日志错误显示与上面我写的一样,都是超时,,这就是纠结的地方,我刚才把代码改了,
估计应该是while循环的问题
追答
我个人感觉,OnStart只是为了启动你的一系列操作,应该尽快【返回】。而你在里面弄了这么多sleep,Windows会认为你的启动失败。把你这些耗时操作方到另一个单独函数里就应该可以了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式