确保服务稳健性以防止服务变得不可用的最佳方法是什么,如果它确实变得不可用,是否有重新启动服务的方法?
提前致谢。
使用托管技术。您可以自行托管在 Windows 服务中,并放置故障事件以触发服务关闭。然后,您可以使用 windows 重新启动您的服务。
或者,如果您有 Windows 2008,您可以使用 WAS 来托管您的服务,这将自动重新启动它。
重要的是要意识到您的服务可能具有状态,但其中没有正在运行的“线程”,因此它不是这样运行的,对象只是存在。你基本上是付钱给微软来为你提供 .net 和 WCF 来照顾事物的托管方面,他们向你保证你的服务将保持可用。
方法中的崩溃会使服务出错,但是您可以处理任何您可以优雅处理的异常,并让操作系统处理您无法处理的事情(例如内存不足异常等)。请注意,这是您的责任处理服务故障。除此之外,WCF 非常强大。
这取决于您托管服务的方式。
可以在此处找到不同可用选项的解释和比较:http: //msdn.microsoft.com/en-us/library/ms730158.aspx
只是为了清楚起见,如果出于某种原因我没有处理异常并且这触发了服务终止,则在 IIS 7.0 下,服务应该以新状态重新启动。