我建立了一个小服务(c#,net 4)。在对开发环境进行了一些测试和调整之后,我在自己的电脑上进行了尝试。一切正常。
当我在 Windows 2008 R2 服务器(生产环境)上安装服务时,它不会开始给我一个 1053 错误(服务没有及时启动)
奇怪的是,当我启动服务时,我会在一两秒后突然收到这个错误。我已将选项 this.RequireMoreTime(120000) 添加到我的服务中,并编辑了 ServicePipelineMode 的注册表项。
更多信息:
- 我正在使用 Log4net 在应用程序日志中记录事件。
- 我使用自定义源(使用 powershell 命令创建)
- 该服务设置为在网络服务帐户下运行,使用管理帐户启动它会得到相同的结果
- 我已将每个部分都放在 Try - catch using log.error(exception.tostring()) 下,但事件日志中没有记录任何内容。
- 我在网上阅读了很多帖子,但没有什么能帮助我解决问题。
开发和服务器具有相同的框架:
任何帮助,将不胜感激。
提前谢谢了。
编辑:
我试图在 program.cs 上添加一个 try-catch,这是我项目的起点:
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
static void Main()
{
try
{
if (!EventLog.SourceExists("CheckMail"))
{
EventLog.CreateEventSource("CheckMail", "Application");
EventLog.WriteEntry("EventSystem", "EventSource created");
}
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[] { new CheckMailSvc() };
ServiceBase.Run(ServicesToRun);
}
catch (Exception ex)
{
string message = string.Format("Error starting Service {0}", ex.ToString());
EventLog.WriteEntry("CheckMail", message, EventLogEntryType.Warning, 666);
}
}
}
没有任何东西被困住(无论是 EventSource 创建事件还是异常)
所有其他代码都在 try-catch 中,使用 log4net 记录事件(在开发环境中它工作正常)。