开发手册 欢迎您!
软件开发者资料库

WCF - 异常处理

WCF异常处理 - 从简单和简单的步骤学习WCF,从基本到高级概念,包括概述,Versus Web服务,开发人员工具,架构,创建wcf服务,托管wcf服务,IIS托管,自托管,WAS托管,窗口服务托管,消费wcf服务,服务绑定,实例管理,事务,ria服务,安全性,异常处理。

WCF服务开发人员可能会遇到一些无法预料的错误,这些错误需要以合适的方式向客户端报告.这些错误(称为例外)通常通过使用try/catch块来处理,但同样,这是非常特定于技术的.

由于客户关注的区域是不是关于如何发生错误或导致错误的因素,SOAP Fault契约用于将错误消息从服务传递到WCF中的客户端.

故障合同使客户端成为可能记录服务中发生的错误的视图.以下示例提供了更好的理解.

步骤1 : 使用除法运算创建一个简单的计算器服务,这将产生一般异常.

using System;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Runtime.Serialization;usingSystem.ServiceModel;usingSystem.Text;namespace Calculator {   // NOTE: You can use the "Rename" command on the "Refactor" menu to change    // the interface name "IService1" in both code and config file together.      [ServiceContract]      public interface IService1 {      [OperationContract]      int divide(int num1, int num2);      // TODO: Add your service operations here   } }

类文件的编码如下所示 :

Wcf异常处理2

现在,当我们尝试将数字10除以零,计算器服务将抛出异常.

Wcf异常处理3


Wcf异常处理4

异常可以通过try/catch块处理.

Wcf异常处理5

现在,当我们尝试将任何整数除以0时,它将返回值10,因为我们已经在catch块中处理它.

Wcf异常处理6

第2步 : 在此步骤中使用FaultException将异常信息从服务传递给客户端.

  public int Divide(int num1,int num2){ //做一些事情抛出新的FaultException("分数时出错"); }

Wcf异常处理7

第3步 : 也可以创建自定义类型以使用FaultContract发送错误消息.创建自定义类型所必需的步骤在下面和下面提到;

通过使用数据协定定义类型,并指定要返回的字段.

服务操作由FaultContract属性修饰.还指定了类型名称.

创建服务实例以引发异常并分配自定义异常属性.