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