我已经创建并安装了一项服务多次。最初它运行良好,但在服务代码进行更改后,当我在Services.msc中重新启动服务时,它开始出现错误:
错误1053:服务未能按时响应启动或控制请求
代码:
public partial class AutoSMS : ServiceBase
{
public AutoSMS()
{
InitializeComponent();
eventLog1.Clear();
if (!System.Diagnostics.EventLog.SourceExists("MySource"))
{
System.Diagnostics.EventLog.CreateEventSource(
"MySource", "MyNewLog");
}
eventLog1.Source = "MySource";
eventLog1.Log = "MyNewLog";
Timer checkForTime = new Timer(5000);
checkForTime.Elapsed += new ElapsedEventHandler(checkForTime_Elapsed);
checkForTime.Enabled = true;
}
protected override void OnStart(string[] args)
{
eventLog1.WriteEntry("In OnStart");
}
protected override void OnStop()
{
eventLog1.WriteEntry("In onStop.");
}
void checkForTime_Elapsed(object sender, ElapsedEventArgs e)
{
string Time = "15:05:00";
DateTime dateTime = DateTime.ParseExact(Time, "HH:mm:ss",
CultureInfo.InvariantCulture);
if (DateTime.Now == dateTime) ;
eventLog1.WriteEntry(Time);
}
}
这是我的主方法代码
static void Main()
{
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new AutoSMS()
};
ServiceBase.Run(ServicesToRun);
}
我也尝试了以下步骤:
- 转到开始菜单 > 运行 > 输入 regedit
- 导航到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
- 在控制文件夹选中的情况下,右键单击右侧窗格并选择新建 DWORD 值
- 将新 DWORD 命名为:ServicesPipeTimeout
- 右键单击 ServicesPipeTimeout,然后单击“修改”
- 单击十进制,输入“180000”,然后单击“确定”
- 重新启动计算机
我曾使用以下命令进行安装和卸载:
installutil AutoSMS.exe
installutil /u AutoSMS.exe