在尝试启动Windows服务时出现“某些服务自动停止,如果这些服务未被其他服务使用”错误。
我有一个服务,不使用Windows服务configuration文件,并使用静态属性 – 它工作正常
现在,我使用app.config文件并重build我的安装项目+服务项目。 现在我安装服务,然后尝试启动服务 – 我得到以下错误:
某些服务会自动停止,如果这些服务没有被其他服务使用
服务以本地系统login。
欢迎任何投入! 谢谢。
这通常是两件事之一的结果 – 或者(a)你的OnStart()
方法抛出异常,或者(b) OnStart()
方法没有开始工作。
如果问题是(a),那么显而易见的解决方案是调试服务以确定哪里出了问题。 至少在OnStart()
方法的内容周围放置一个try-catch
块,并在出现异常时将错误记录到系统事件日志中。 然后您可以在Windows事件查看器中看到详细信息。
如果问题是(b),那么你需要创建一个真正做某事的线程。 该线程需要是一个前台线程(而不是后台线程),以防止服务关闭。 典型的OnStart()
方法如下所示:
private System.Threading.Thread _thread; protected override void OnStart(string[] args) { try { // Uncomment this line to debug... //System.Diagnostics.Debugger.Break(); // Create the thread object that will do the service's work. _thread = new System.Threading.Thread(DoWork); // Start the thread. _thread.Start(); // Log an event to indicate successful start. EventLog.WriteEntry("Successful start.", EventLogEntryType.Information); } catch (Exception ex) { // Log the exception. EventLog.WriteEntry(ex.Message, EventLogEntryType.Error); } } private void DoWork() { // Do the service work here... }
我得到这个错误,这是因为硬盘已经满了。 这可能是任何使服务运行的事情。