【问题标题】:Windows Service starting issue in c#c#中的Windows服务启动问题
【发布时间】:2015-05-21 14:55:52
【问题描述】:

当我在使用 nssm 安装后尝试启动 Windows 服务时,会显示以下错误

添加代码

#region Private Members 

private Timer timer1 = null; 

#endregion

#region Constructor

public Service1()
{
    InitializeComponent();
}

#endregion

#region Methods
/// <summary>
/// This function run on Windows service Start event
/// </summary>
/// <param name="args">args</param>
protected override void OnStart(string[] args)
{
    try
    {
        timer1 = new Timer();
        this.timer1.Interval = 60000;         //1 Minute=60000, 2 Minute=120000,5 Minute=300000            
        this.timer1.Elapsed += new System.Timers.ElapsedEventHandler(this.timer1_Tick);
        timer1.Enabled = true;
        Library.WriteErrorLog(" ============================ ");
        Library.WriteErrorLog(" Windows Service Started. ");
    }
    catch (Exception ex)
    {
        Library.WriteErrorLog(" WCF Service Error Given In OnStart() Is  : " + ex.Message);
    }
}
/// <summary>
/// OnStop event will hit when Windows service Stop
/// </summary>
protected override void OnStop()
{
    timer1.Enabled = false;
    Library.WriteErrorLog(" Windows Service Stopped. ");

}
/// <summary>
/// timer1_Tick event will call in every Timer Interval as well Window Service Started
/// </summary>
/// <param name="state"></param>
private void timer1_Tick(object sender, ElapsedEventArgs e)
{
    Library.WriteErrorLog("---------------------------------");
    Library.WriteErrorLog(" Windows Service Timer Ticked and Doing His Job Succcessfully. ");
    Library.WriteErrorLog(" Windows Service Timer Call After 1 Minute. ");
    Library.WriteErrorLog(" WCF Service Call Started. ");
    TimerCalled();
}

/// <summary>
/// This function will called in 'x' time interval. common function will call from OnElapsedTime event
/// </summary>
/// <param name="b"></param>
private void TimerCalled()
{
    try
    {
        Library.WriteErrorLog(" WCF Service Call By Using Windows Service Timer. ");

        DbChecker obj = new DbChecker();
        Boolean bl = obj.checkRecord();

        Library.WriteErrorLog(" Windows Service Timer Call End. ");
        Library.WriteErrorLog("---------------------------------");
    }
    catch (Exception ex)
    {
        Library.WriteErrorLog(" WCF Service Error Given In TimerCalled() Is : " + ex.Message);
    }
}
#endregion

当我当时调试我的解决方案时,我没有收到任何错误或警告...服务运行完美,但我认为可能是 Windows 服务器错误

【问题讨论】:

  • 这里没有足够的信息来提供有意义的答案。您是否检查过任何日志或事件查看器?您的服务应该做什么等?
  • 服务正在开发用于将库存订单转移到亚马逊 mws 帐户

标签: c# .net windows wcf


【解决方案1】:

这几乎可能是由任何原因造成的,具体取决于您编写的代码。我能想到的接收该消息的唯一原因是:(1)未处理的异常;甚至是允许服务进程结束的已处理的; (2) 一个行为更像一个开始-处理-完成应用程序的服务:当它启动时,它会进行一些处理然后结束,从而产生该消息。

在您的代码中寻找这两行的提示。希望对您有所帮助!

【讨论】:

  • 感谢约翰尼的快速响应。
  • 您可以尝试的一件事是,如果 Library.WriteErrorLog 因任何原因而失败,这会给您所看到的:没有日志,也没有来自任何地方的帮助;考虑尝试超简单的日志记录,直到事情至少给你最小的提示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多