2014-02-19 173 views
1

我开发了一个用于与数据库通信的WCF服务。我从我的WPF应用程序中使用此服务来访问数据库。将来,我们也计划拥有一个Web客户端。目前,我们将服务作为Windows服务托管在服务器中。WCF服务异常处理

我在这里的问题是,如果在服务器意味着任何异常,我想通知客户端的异常。另外,我不希望这个服务被杀死。我如何实现这一目标?

例如:如果数据库脱机,当服务尝试访问该数据库时,它会引发异常。我没有使用try catch处理这些异常。这些类型的未处理的异常导致我的WCF服务关闭。

+1

你可以发布一些代码来展示当你抛出异常时你如何停止你的服务吗? – MattC

回答

1

你不要做任何事情。如果发生异常,服务器不会被终止。客户端将收到异常。

如果需要,可以使用IErrorHandler接口添加错误处理,并且应该使用错误合约,以便客户端知道他们是否得到预期的或意外的错误。在这里看到更多的细节:http://msdn.microsoft.com/en-us/library/gg281715%28v=vs.110%29.aspx

+0

fejesjoco:我将服务作为Windows服务托管,如果发生异常,服务将停止。 – petchirajan

+0

那么这不是WCF的错,而是别的。 WCF捕获服务中的异常,所以它不可能是原因。 – fejesjoco

+0

fejesjoco:我在使用Try..Catch的服务中处理异常,并从catch块中抛出FaultException来通知客户端。谢谢你的帮助。 – petchirajan