我有一个WCF服务多个UI消耗.当用户无法访问数据库时,我从数据库中获得了未经授权的异常.我没有在服务器端捕获异常并将其发送到客户端.
在客户端(asp.net网页)上,我看到异常 - 用户无法访问数据库,登录失败. 这一切都很好.但是......如果我再次调用WCF服务,我会得到服务处于故障状态的异常.只有open才能重新启动整个WCF服务.WCF服务作为Windows服务托管.
捕获异常的最佳方法是什么,在服务器端记录异常,将异常详细信息发送回客户端而不破坏服务?谢谢
未处理的异常将使通信通道出错.正如其他人所指出的那样,必须通过调用来中止故障通道Abort()- 它不能被关闭而且不能再次使用.
要解决问题的其他部分,"捕获异常的最佳方法,在服务器端记录异常,将异常详细信息发送回客户端而不破坏服务?",您需要使用FaultException类.
此外,您可以使用IErrorHandler接口连接服务主机以捕获未捕获的任何异常(即,全局错误处理程序).有很多关于如何在网上执行此操作的示例 - 只需google for WCF IErrorHandler.
这是一对夫妇:
| 归档时间: |
|
| 查看次数: |
16434 次 |
| 最近记录: |