windows 服务启动不了了。。、 检查下你的代码有没有问题。比如说,你是否在OnStart中放置了太多代码,导致启动超时。或者你没有用线程或者循环保持住服务进程的运行,而程序自动退出。还有代码是否丢出了异常,等等。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 应该没问题的、要不你帮我看看。。 public LoggerService() { InitializeComponent(); } static int Timespan = int.Parse(System.Configuration.ConfigurationManager.AppSettings["TimeSpan"]); static int ExecNumber = int.Parse(System.Configuration.ConfigurationManager.AppSettings["ExecNumber"]); static string DBHost = System.Configuration.ConfigurationManager.AppSettings["Server"]; static string SqsHost = System.Configuration.ConfigurationManager.AppSettings["SQSURL"].Replace("http://", "").Split(':')[0]; System.Timers.Timer timer = new System.Timers.Timer(Timespan); protected override void OnStart(string[] args) { Thread.Sleep(1000); try { LogWrapper logWrapper = new LogWrapper(); logWrapper.BuildLogFile("ServiceStart------------------------------", "Pause 1s", SqsHost, DBHost, "", "", "", "", "", "", "", "", "", "", ""); } catch { } timer.Elapsed += new System.Timers.ElapsedEventHandler(this.Commit); timer.AutoReset = true; timer.Enabled = true; timer.Start(); } protected override void OnStop() { timer.Enabled = false; timer.AutoReset = false; timer.Stop(); timer.Dispose(); } protected void Commit(object sender, ElapsedEventArgs e) { try { if (DateTime.Now.Hour != 3) { ThreadPool.SetMaxThreads(350, 350); using (Ping p = new Ping()) { PingReply replysqs = p.Send(SqsHost, 1000); PingReply replydb = p.Send(DBHost, 1000); if (replysqs.Status == IPStatus.Success && replydb.Status == IPStatus.Success) { for (int i = 0; i < ExecNumber; i++) { ThreadPool.QueueUserWorkItem(ExecLogger); } } else { try { lock (obj1) { LogWrapper logWrapper = new LogWrapper(); logWrapper.BuildLogFile("UnableReachNetwork", "Pause 1s", SqsHost, DBHost, "", "", "", "", "", "", "", "", "", "", ""); } } catch { } } } } else { if (DateTime.Now.Hour ==3 && DateTime.Now.Minute==0 && DateTime.Now.Second==1) { LogSQS log = new LogSQS(); log.Time = "{0:yyyy-MM-dd HH:mm:ss,ffff}".FormatWith(DateTime.Now); log.Reset(); } } } catch (Exception ex) { LogWrapper logWrapper = new LogWrapper(); logWrapper.BuildLogFile("ThreadPoolException", ex.ToString(), "", "", "", "", "", "", "", "", "", "", "", "", ""); } } protected void ExecLogger(object obj) { try { LogSQS log = new LogSQS(); log.Time = "{0:yyyy-MM-dd HH:mm:ss,ffff}".FormatWith(DateTime.Now); log.Receive(); if (log.DataKey.Count() > 0 && log.DataValue.Count() > 0) { using (LoggerDao logger = new LoggerDao()) { logger.ExecLogger(log.DataKey, log.DataValue, log.Data); } } else { return; } } catch(Exception ex) { try { //lock (obj) //{ LogWrapper logWrapper = new LogWrapper(); logWrapper.BuildLogFile("ExecLogger", System.DateTime.Now.ToString(),ex.Message , "", "", "", "", "", "", "", "", "", "", "", ""); //} } catch { } } } }} WinFrom程序命令行接口的开放 AT拨号返回 codesmith在项目中占多大位置 c#中委托与事件委托的问题 关于Ftp的问题! 獲取遠端電腦上IIS指定目錄下的所有文件名列表? 引用外部动态连接库的问题,非常奇怪,不解,希望大家来看看 别人的一个C#的群,号码:2986053,要加的赶快! 新手求教,groupBox 关于日期参数的问题 定时刷新数据,得到数据自动一条显示,每次页面上只显示一条 Dictionary扩展能支持泛型返回值?
应该没问题的、要不你帮我看看。。
public LoggerService()
{
InitializeComponent();
}
static int Timespan = int.Parse(System.Configuration.ConfigurationManager.AppSettings["TimeSpan"]);
static int ExecNumber = int.Parse(System.Configuration.ConfigurationManager.AppSettings["ExecNumber"]); static string DBHost = System.Configuration.ConfigurationManager.AppSettings["Server"];
static string SqsHost = System.Configuration.ConfigurationManager.AppSettings["SQSURL"].Replace("http://", "").Split(':')[0];
System.Timers.Timer timer = new System.Timers.Timer(Timespan);
protected override void OnStart(string[] args)
{
Thread.Sleep(1000);
try
{
LogWrapper logWrapper = new LogWrapper(); logWrapper.BuildLogFile("ServiceStart------------------------------", "Pause 1s", SqsHost, DBHost, "", "", "", "", "", "", "", "", "", "", ""); }
catch
{ }
timer.Elapsed += new System.Timers.ElapsedEventHandler(this.Commit);
timer.AutoReset = true;
timer.Enabled = true;
timer.Start();
} protected override void OnStop()
{
timer.Enabled = false;
timer.AutoReset = false;
timer.Stop();
timer.Dispose();
} protected void Commit(object sender, ElapsedEventArgs e)
{
try
{
if (DateTime.Now.Hour != 3)
{
ThreadPool.SetMaxThreads(350, 350);
using (Ping p = new Ping())
{
PingReply replysqs = p.Send(SqsHost, 1000);
PingReply replydb = p.Send(DBHost, 1000);
if (replysqs.Status == IPStatus.Success && replydb.Status == IPStatus.Success)
{
for (int i = 0; i < ExecNumber; i++)
{
ThreadPool.QueueUserWorkItem(ExecLogger);
}
}
else
{
try
{
lock (obj1)
{
LogWrapper logWrapper = new LogWrapper(); logWrapper.BuildLogFile("UnableReachNetwork", "Pause 1s", SqsHost, DBHost, "", "", "", "", "", "", "", "", "", "", "");
}
}
catch
{ }
}
}
}
else
{
if (DateTime.Now.Hour ==3 && DateTime.Now.Minute==0 && DateTime.Now.Second==1)
{
LogSQS log = new LogSQS(); log.Time = "{0:yyyy-MM-dd HH:mm:ss,ffff}".FormatWith(DateTime.Now); log.Reset();
}
}
}
catch (Exception ex)
{
LogWrapper logWrapper = new LogWrapper(); logWrapper.BuildLogFile("ThreadPoolException", ex.ToString(), "", "", "", "", "", "", "", "", "", "", "", "", "");
}
} protected void ExecLogger(object obj)
{ try
{
LogSQS log = new LogSQS(); log.Time = "{0:yyyy-MM-dd HH:mm:ss,ffff}".FormatWith(DateTime.Now);
log.Receive();
if (log.DataKey.Count() > 0 && log.DataValue.Count() > 0)
{
using (LoggerDao logger = new LoggerDao())
{
logger.ExecLogger(log.DataKey, log.DataValue, log.Data);
}
}
else
{
return;
}
}
catch(Exception ex)
{
try
{
//lock (obj)
//{
LogWrapper logWrapper = new LogWrapper(); logWrapper.BuildLogFile("ExecLogger", System.DateTime.Now.ToString(),ex.Message , "", "", "", "", "", "", "", "", "", "", "", "");
//}
}
catch
{ }
}
} }
}