12 2011 档案

摘要:任何程序都离不开对异常的处理,良好的异常处理方式可加快寻找出异常的根源,同时也需要避免暴露敏感信息到异常中。WCF这种典型的服务端和客户端交互的程序,服务端的异常更需要适当的处理。下面以一个简单的服务为例,说明WCF中处理异常的方式。WCF服务定义如下,很明显方法Divide在divisor为0的时候将会抛出异常View Code publicclassCalculateService:ICalculateService{publicintDivide(intdividend,intdivisor){returndividend/divisor;}publicintAdd(inta,intb. 阅读全文
posted @ 2011-12-31 21:41 神八 阅读(8584) 评论(1) 推荐(3) 编辑
摘要:上接方法一实现的第二种方法是利用企业库提供的针对WCF程序的validation block,如果之前有用过企业库的validation模块,那么在WCF中用起来就非常简单,在WCF中要做的大部分都是配置工作。步骤一,引用相关的dllMicrosoft.Practices.EnterpriseLibrary.Common.dllMicrosoft.Practices.EnterpriseLibrary.Validation.dllMicrosoft.Practices.EnterpriseLibrary.Validation.Integration.WCF.dll步骤二,在指定的接口中设置一个 阅读全文
posted @ 2011-12-29 22:30 神八 阅读(1176) 评论(0) 推荐(0) 编辑
摘要:WCF中支持自定义behavior,可通过配置的方式给endpoint或者service设置behavior。配置方法就是在system.serviceModel/extensions/behaviorExtensions节点下注册自定义的behavior,之后就可以在behaviors节点中使用。注册的配置如下注册自定义Behavior 1<extensions>2<behaviorExtensions>3<addname="validation"4type="Microsoft.Practices.EnterpriseLibrar 阅读全文
posted @ 2011-12-29 18:38 神八 阅读(2919) 评论(4) 推荐(0) 编辑
摘要:WCF中对方法参数的校验实现方式 阅读全文
posted @ 2011-12-28 21:55 神八 阅读(2086) 评论(1) 推荐(0) 编辑
摘要:昨天在调试WCF服务时,碰到个异常,异常信息都让人看不懂。之前也没碰到过,折腾了一会才弄明白原因。 像往常一样创建一个WCF库,就是可直接调试的那种WCF服务。然后加入了一个服务,该服务还用到了复杂自定义类型作为DataContract,并像往常一样启动调试,居然蹦出了一个错误提示框,里面有一些错误信息,命名空间“TestNamespace.System”中不存在类型或命名空间名称“Runtime”(是缺少程序集引用吗?),如下图:其中TestNamespace.System命名空间下是复杂类型所在的命名空间。出现这样的错误,一时让人毫无头绪。为什么回去自定义类型中去寻找Runtime和... 阅读全文
posted @ 2011-12-20 09:48 神八 阅读(566) 评论(0) 推荐(0) 编辑
摘要:最近在做一个搜索程序的优化改进,将搜索结果按照查询的参数不同进行缓存。缓存的Key很自然的就想到了用查询字符串,而获取查询字符串的最简单方式是通过Request.QueryString.ToString()方法。查看了QueryString的定义类型是NameValueCollection,就误以为这是NameValueCollection的重写了ToString()的方法,于是放心地将代码转移到了业务逻辑层。因为还要重构查询参数,因此重新构建了一个NameValueCollection,并想当然地用ToString()的结果作为Key。但实际运行之后发现,每次的结果都一样的,都是第一次的.. 阅读全文
posted @ 2011-12-08 23:04 神八 阅读(2878) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示