C#WCF服务抛出错误但仍在继续

时间:2010-10-15 17:01:20

标签: c# wcf design-patterns

如果我的服务遇到错误,我希望该线程返回错误并终止,但后来的请求仍然可以正常工作。我该怎么做呢?如果我有一个未处理的异常,它将被传递回客户端,但随后服务停止。

2 个答案:

答案 0 :(得分:0)

什么样的未处理的例外?除非异常是终止异常(Stack Overflow等),否则ServiceHost应继续响应后续请求。

答案 1 :(得分:0)

默认情况下,每个请求都有自己的服务实现实例,因此,其中一个请求处理程序中的错误不应影响其他请求。

因此,在WCF的默认行为中,每个请求都会获得一个品牌打击的服务类新实例,然后处理请求并终止 - 无论是否发生异常。可能的问题是例外 - 如果您将其传递回客户端“未过滤”,则通道(客户端与服务器之间的通信链接)可能会“出现故障”,因此无法使用。

如果将所有服务异常包装到FaultExceptionFaultException<T>,那么客户端和服务器之间的通道应该没问题。为了捕获服务器上的所有可能错误,请检查在服务类上实现IErrorHandler接口。