[WCF] Fault Contract
来源:互联网 发布:安装程序数据库已损坏 编辑:程序博客网 时间:2024/05/20 06:26
在服务端定义异常:
using System;
using System.ServiceModel;
using System.Runtime.Serialization;
using System.ServiceModel.Channels;
namespace FaultExceptions
{
[ServiceContract()]
public interface IFaultExceptionService
{
[OperationContract]
[FaultContract(typeof(InvalidOperationException))]
void ThrowSimpleFault();
[OperationContract]
[FaultContract(typeof(InvalidOperationException))]
void ThrowMessageFault();
[OperationContract()]
[FaultContract(typeof(InvalidOperationException))]
void ThrowFaultException();
}
public class FaultExceptionService : IFaultExceptionService
{
#region IService Members
public void ThrowSimpleFault()
{
throw new FaultException("An invalid operation has occurred.");
}
public void ThrowMessageFault()
{
InvalidOperationException error = new InvalidOperationException("An invalid operation has occurred.");
MessageFault mfault = MessageFault.CreateFault(new FaultCode("Server", new FaultCode(String.Format("Server.{0}", error.GetType().Name))), new FaultReason(error.Message), error);
FaultException fe = FaultException.CreateFault(mfault, typeof(InvalidOperationException));
throw fe;
}
public void ThrowFaultException()
{
FaultException<InvalidOperationException> fe = new FaultException<InvalidOperationException>(new InvalidOperationException("An invalid operation has occured."), "Invalid operation.", new FaultCode("Server", new FaultCode(String.Format("Server.{0}", typeof(NotImplementedException)))));
throw fe;
}
#endregion
}
}
客户端接收异常:
localhost.FaultExceptionServiceClient proxy = new Client.localhost.FaultExceptionServiceClient();
try
{
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("Calling proxy.ThrowSimpleFault()");
Console.WriteLine("");
Console.ResetColor();
proxy.ThrowSimpleFault();
}
catch (FaultException fe)
{
Console.WriteLine(fe.GetType().ToString());
Console.WriteLine("ERROR: {0}", fe.Message);
}
catch (Exception ex)
{
Console.WriteLine(ex.GetType().ToString());
Console.WriteLine("ERROR: {0}", ex.Message);
}
- [WCF] Fault Contract
- Exception Handling in WCF using Fault Contract
- [WCF] Contract
- [WCF] Contract
- [WCF] Service contract
- [WCF] Data Contract
- [WCF] Message Contract
- WCF之Contract详解
- Programming WCF Services- 接口Contract
- Programming WCF Services - Data Contract
- WCF Coding Standards - Data Contract
- 再说WCF Data Contract KnownTypeAttribute
- WCF Introdution Part2:Defining contract
- WCF Data Contract之KnownType
- WCF 基础之契约(Contract)
- WCF 之 服务契约(Service Contract)
- WCF进阶(二)——Contract
- WCF学习笔记——契约(Contract)
- char(nchar)与varchar(nvarchar)的区别以及选择
- 日全食
- Flash 与 Silverlight 终极大比拼
- 几种典型的动画表演动作捕捉系统
- 得到进程的用户名-转贴
- [WCF] Fault Contract
- Photoshop动画制作
- Javascript中最常用的55个经典技巧
- CheckBox 级联例子(转自JAVAEYE)
- 怎样列出Access所有的表名?
- [转] 《我的青春谁做主》经典语录
- 谈谈发送邮件(C#/Asp.net)功能
- hibernate映射数据库表如何使表中字段默认值生效(如更新当传来的值为null时不替换表中值)
- 本文结合大量实例阐述如何编写一个shell脚本