zoukankan      html  css  js  c++  java
  • WCF无法捕获FaultException

    有一个服务错误契约是这样的BusinessFault

    throw new FaultException<BusinessFault>(new BusinessFault(), errMessage);

    这样抛出后,客户端一直收到的是CommunicationException而不是上面的具体的Exception.最后使用如下代码通过

     BusinessFault businessFault = new BusinessFault
      {
          FaultDetail = new FaultDetail
                            {
                                ErrorCode = "BusinessError",
                                Message =
                                    string.IsNullOrEmpty(errMessage)
                                        ? errMessage
                                        : "No Message"
                            },InvalidArgumentDetail = new InvalidArgumentDetail()
                             
      };
    
    
    throw new FaultException<BusinessFault>(businessFault,errMessage);

    为什么呢?经过仔细排查,发现Schema定义的一些元素是不能为空的,比如Error和Message,但是开发人员在写的时候和编译的时候都发现不了。我觉得这个如果生成代理类时用构造函数来强制就好了。

    image
  • 相关阅读:
    idea初始化配置
    常用网址
    linux改错了profile文件
    获得ip地址[转载]
    java 基本数据类型转换
    log4j配置概要
    HTTP状态码
    HTTP 的请求方式
    10、类和方法
    9、一切都是对象
  • 原文地址:https://www.cnblogs.com/cnblogsfans/p/1954351.html
Copyright © 2011-2022 走看看