WCF Note3 (Fault and Exception)

WCF Faults
servilize exception

By default, exception details are not shared with clients applications  and general SOAP fault is returned
      
Debugging Behavior: "IncludeExceptionDetailsInFaults"
    e.g.:
      <behaviors>
        <serviceBehaviors>
          <behavior>
            <serivceDebug IncludeExceptionDetailsInFaults="true"/>
      OR
      [ServiceBehaviorAttribute(IncludeExceptionDetailsInFaults=true]
      [ublic class Service:IService


Uncatch Exception
  :indicate to the service model a potentially fatal error  
  ,will cause server channel terminate, then client proxy has to been re-create



Throwing Faults, but not kill the server channel,not lose session;
  Type
    FaultException
      e.g.:
        throw new FaultException("An invalid operation has occurred.");
        throw new FaultException(new FaultReason(""));
        ...
    FaultException<T>
      e.g.:
        throw new FaultException<InvalidOperationException>(new  
        InvalidOperationException("xxx"),"Invalid operation",
        ...
        
        "Custom Fault"
        [DataContact(Namespace=""
        public class SenderFault
        {
          private string m_message
          private string m_description
          ...
        
        public interface IphotoUpload
        {
           [OperationContract]
           [FaultContract(typeof(SenderFault))]
           void UploadPhoto...
    MessageFault
  
**Basic Http Binding does not have session
**Channel Die then session die the client proxy die, need to restart  

By default, clients are unaware of POSSIBLE faults operations can throw
Declare Faults will helps client to understand what are the potential errors in the system when they generate client proxy.
  e.g.:
    
    [OperationContract]
    [FaultContract(typeof(SenderFault))]
    [FaultContract(typeof(ReciverFault))]
    void UploadPhoto...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值