我想知道如何正确关闭 channelFactory。实际上,我正在使用:
try
{
factory.Close(TimeSpan.FromSeconds(0.25))
}
catch
{
factory.Abort();
}
但是到 ServiceHost 方面,未处理的异常到达域级别(应用程序的顶层)。我不明白为什么服务主机不捕获异常并使用我配置的 IErrorHandler 处理它。
这就是我配置 ErrorHandler 的方式:
IErrorHandler handler = new ErrorHandler();
foreach (var channelDispatcher in host.ChannelDispatchers.Select(d => d as ChannelDispatcher).Where(d => d != null))
{
channelDispatcher.ErrorHandlers.Add(handler);
}