发生异常时显示其他信息

处理服务中的异常非常重要。在开发服务时,你可以设置 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)

这将返回客户端的详细信息。在开发期间,这可以提供帮助,但是当你的服务投入生产时,你将不再保留此服务,因为你的服务可以发送敏感数据,例如数据库名称或配置。