[索引页]
[源码下载]


化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException<T>、IErrorHandler)


作者:webabcd


介绍
WCF(Windows Communication Foundation) - 异常处理:一般Exception的处理,FaultException和FaultException<T>的抛出和处理,使用IErrorHandler处理异常。


示例
1、服务
IHello.cs
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)using System;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Collections.Generic;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Linq;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Text;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.ServiceModel;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
namespace WCF.ServiceLib.Exception
}

FaultMessage.cs
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)using System;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Collections.Generic;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Linq;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Text;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.ServiceModel;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Runtime.Serialization;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
namespace WCF.ServiceLib.Exception
}

FaultErrorHandler.cs
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)using System;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Collections.Generic;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Linq;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Text;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.ServiceModel.Dispatcher;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Configuration;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.ServiceModel;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.ServiceModel.Channels;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
namespace WCF.ServiceLib.Exception
}

Hello.cs
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)using System;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Collections.Generic;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Linq;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Text;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.ServiceModel;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.ServiceModel.Description;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.ServiceModel.Dispatcher;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
namespace WCF.ServiceLib.Exception


2、宿主
Hello.svc
%>

Web.config
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)<?xml version="1.0"?>
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
<configuration>
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)  
<system.serviceModel>
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)    
<behaviors>
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)      
<serviceBehaviors>
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)        
<behavior name="ExceptionBehavior">
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)          
<!--httpGetEnabled - 使用get方式提供服务-->
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)          
<serviceMetadata httpGetEnabled="true" />
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)          
<serviceDebug includeExceptionDetailInFaults="true"/>
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)        
</behavior>
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)      
</serviceBehaviors>
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)    
</behaviors>
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)    
<services>
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)      
<!--name - 提供服务的类名-->
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)      
<!--behaviorConfiguration - 指定相关的行为配置-->
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)      
<service name="WCF.ServiceLib.Exception.Hello" behaviorConfiguration="ExceptionBehavior">
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)        
<!--address - 服务地址-->
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)        
<!--binding - 通信方式-->
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)        
<!--contract - 服务契约-->
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)        
<endpoint address="" binding="wsHttpBinding" contract="WCF.ServiceLib.Exception.IHello" />
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)      
</service>
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)    
</services>
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)  
</system.serviceModel>
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
</configuration>


3、客户端
Hello.aspx

Hello.aspx.cs
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)using System;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Collections;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Configuration;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Data;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Linq;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Web;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Web.Security;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Web.UI;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Web.UI.HtmlControls;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Web.UI.WebControls;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Web.UI.WebControls.WebParts;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.Xml.Linq;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
using System.ServiceModel;
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
public partial class Exception_Hello : System.Web.UI.Page

Web.config
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)<?xml version="1.0"?>
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
<configuration>
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)  
<system.serviceModel>
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)    
<client>
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)      
<!--address - 服务地址-->
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)      
<!--binding - 通信方式-->
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)      
<!--contract - 服务契约-->
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)      
<endpoint address="http://localhost:3502/ServiceHost/Exception/Hello.svc" binding="wsHttpBinding" contract="ExceptionService.IHello" />
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)    
</client>
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)  
</system.serviceModel>
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)
</configuration>
化零为整WCF(4) - 异常处理(Exception、FaultException、FaultException、IErrorHandler)


运行结果:
单击"btnHelloException"后显示
抛出Exception异常
The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state.

单击"btnHelloFaultException"后显示
错误编码:服务;错误原因:抛出FaultException异常

单击"btnHelloFaultExceptionGeneric"后显示
错误代码:-1;错误信息:抛出FaultException异常;错误原因:为了测试FaultException用的

单击"btnHelloIErrorHandler"后显示
错误信息:IErrorHandler - ProvideFault测试


OK
[源码下载]

相关文章:

  • 2021-09-28
  • 2021-05-26
  • 2022-12-23
  • 2022-12-23
  • 2021-11-21
  • 2021-05-22
猜你喜欢
  • 2022-01-01
  • 2022-02-10
  • 2021-06-06
  • 2021-07-31
  • 2021-12-12
相关资源
相似解决方案