Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C WCF服务抛出错误,但仍在继续_C#_Wcf_Design Patterns - Fatal编程技术网

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

C# C WCF服务抛出错误,但仍在继续,c#,wcf,design-patterns,C#,Wcf,Design Patterns,如果我的服务遇到错误,我希望该线程返回错误并终止,但以后的请求仍然可以正常工作。我该怎么做?如果我有一个未处理的异常,它将被传递回客户端,但随后服务停止。什么类型的未处理异常?除非异常是终止异常堆栈溢出或类似情况,否则ServiceHost应继续响应后续请求。默认情况下,每个请求都有自己的服务实现实例,因此,其中一个请求处理程序中的错误不应影响其他请求处理程序 因此,在WCF的默认行为中,每个请求都会获得一个全新的服务类实例,该实例随后会处理该请求并终止—无论是否发生异常。可能的问题在于异常-如

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

什么类型的未处理异常?除非异常是终止异常堆栈溢出或类似情况,否则ServiceHost应继续响应后续请求。

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

因此,在WCF的默认行为中,每个请求都会获得一个全新的服务类实例,该实例随后会处理该请求并终止—无论是否发生异常。可能的问题在于异常-如果您让它未经过滤地传回客户端,则客户端和服务器之间的通信链路通道可能出现故障,因此无法使用


若将所有服务异常包装为FaultException或FaultException,那个么客户端和服务器之间的通道应该是正常的。为了捕获服务器上所有可能的错误,请检查在您的服务类上实现接口。

我抛出FaultException如果我使用呢?在这种情况下,您只能同时有一个实例,但每个请求仍会获得自己的服务类副本。