zoukankan      html  css  js  c++  java
  • Silverlight与WCF错误处理:Server Not Found(2)

         上一篇简单介绍了配置应用程序使客户端获取WCF抛出的SOAP异常,但是这些SOAP异常信息只包含InnerException ,Message,StackTrace,但是在实际情况中,我们

    可能需要提供更详细的信息,在WCF中可以发送给客户端未声明的和声明的两种类型的SOAP错误,上一篇文章实际上是使用了未声明的SOAP错误。

         本篇在上一篇的基础上演示通过WCF提供的FaultContractAttribute声明服务操作中的错误:

         1.自定义一个用于错误契约的自定义类型

      [DataContract]
      public class DataAccessFault
      {
      [DataMember]
      public string ExceptionMessage { get; set; }
     
      [DataMember]
      public string ExceptionCode { get; set; }
      }

         2.修改服务操作的实现

      [OperationContract]
      [FaultContract(typeof(DataAccessFault))]
      public void DoWork()
      {
        throw new FaultException<DataAccessFault>(new DataAccessFault()
                                            {
                                                ExceptionMessage = "发生了异常",
                                                ExceptionCode = "CS2011"
                                            });
       }

       在操作中抛出该类型的异常,同时添加契约的类型

        3.客户端更新引用后,修改处理代码

      FaultException<DataAccessFault> faultException = e.Error as FaultException<DataAccessFault>;
                                                      MessageBox.Show(faultException.Detail.ExceptionCode + ":" +
                                                                      faultException.Detail.ExceptionMessage);

       最终的效果如下:image

       本篇通过错误契约向Silverlight客户端传递强类型的错误信息,在实际情况中还是根据需要进行取舍。

        代码下载:WcfExceptionLesson1.rar

  • 相关阅读:
    贝叶斯分类
    K-Means算法
    python数组
    深度学习与神经网络
    数据挖掘算法之-关联规则挖掘(Association Rule)
    k8s记录-pip源配置
    k8s记录-yum本地仓库部署
    k8s记录-不同集群服务互联
    k8s记录-kube-dns(core-dns)配置(七)
    k8s记录-kubectl常用
  • 原文地址:https://www.cnblogs.com/626498301/p/2055147.html
Copyright © 2011-2022 走看看