【发布时间】:2016-05-05 21:16:14
【问题描述】:
我将 WCF 作为 Widnows 服务托管,但在处理 WCF 通道的故障状态时遇到问题。 ServiceHost 上的故障事件永远不会出现。
托管应用程序:
protected override void OnStart(string[] args)
{
_serviceHost = new ServiceHost(typeof(WCF_FaultTest.Service1));
_serviceHost.Faulted += _serviceHost_Faulted;
_serviceHost.Open();
}
void _serviceHost_Faulted(object sender, EventArgs e)
{
// never raise up..
}
我尝试像这样模拟的故障状态:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Single)]
public class Service1 : IService1
{
public string GetFault()
{
throw new Exception("Should went to fault..");
}
我是否正确使用它?谢谢。
【问题讨论】:
-
谢谢,但我已经尝试过了(实际实现中)。与自定义 IErrorHandler 问题保持不变。每个异常都在 HandleError 中得到正确处理,但 ServiceHost 上的故障事件仍然不会引发..(我想在故障时中止并重新创建 ServiceHost)
标签: c# .net wcf event-handling