发生异常时显示其他信息
处理服务中的异常非常重要。在开发服务时,你可以设置 WCF 以提供更详细的信息,将此标记添加到配置文件,通常是 Web.config:
<serviceDebug includeExceptionDetailInFaults="true"/>
此标记必须放在 serviceBehavior 标记内,通常如下所示:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
详细信息示例:
服务器堆栈跟踪:em System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation,ProxyRpc&rpc)em System.ServiceModel.Channels.ServiceChannel.Call(String action,Boolean oneway,ProxyOperationRuntime operation,Object [] ins,Object [] out,TimeSpan timeout)em System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall,ProxyOperationRuntime operation)em System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
异常重新抛出[0]:em System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg)em System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&msgData,Int32 type)em IMyService.GetDataOperation( RequestObterBeneficiario request)em MyServiceClient.GetDataOpration(RequestData request)
这将返回客户端的详细信息。在开发期间,这可以提供帮助,但是当你的服务投入生产时,你将不再保留此服务,因为你的服务可以发送敏感数据,例如数据库名称或配置。