饿虎岗资源网 Design By www.oxmxm.com
客户端的异常处理 这个部分,我们将看看在客户端怎样处理从Web服务中所抛出的异常。为了说明这个做法,我们来创建一个新项目CategoriesServiceClient。一旦项目被创建,就在默认的表单上添加一个命令按钮,并命名为btnInvoke。因为需要在客户端引用Web服务,所以在项目CategoriesService中添加一个WebReference。可以通过Project->AddReference菜单选项来完成添加。然后修改命令按钮的Click事件,如下所示。
privatevoidbtnInvoke_Click(objectsender,System.EventArgse)
{
try
{
Categoriescat=newCategories();
MessageBox.Show(cat.AddCategories(" XmlNamespaceManagernsManager=new
XmlNamespaceManager(doc.NameTable);
//AddthenamespacetotheNamespaceManager
nsManager.AddNamespace("errorNS",
"http://tempuri.org/CategoriesService");
XmlNodecategoryNode=
doc.DocumentElement.SelectSingleNode("errorNS:Error",
nsManager);
stringerrorNumber=
categoryNode.SelectSingleNode("errorNS:ErrorNumber",
nsManager).InnerText;
stringerrorMessage=
categoryNode.SelectSingleNode("errorNS:ErrorMessage",
nsManager).InnerText;
stringerrorSource=
categoryNode.SelectSingleNode("errorNS:ErrorSource",
nsManager).InnerText;
MessageBox.Show("ErrorNumberis"+errorNumber);
MessageBox.Show("ErrorMessageis"+errorMessage);
MessageBox.Show("ErrorSourceis"+errorSource);
} catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
}
客户端需要处理Web服务所产生的异常。因为Web服务所产生的异常都是SoapException形式的,所以调用Web服务的客户应用程序的代码应该被包含在try...catch块中,并且第一个catch块应该具有捕捉SoapException的处理器。让我们大致看看以上所示的代码。
首先创建一个Categories类的实例。然后传入所要求的XML字符串参数,调用Categories类的AddCategories方法。再后,我们让catch块处理Web服务所产生的异常。在这个代码块中,我们以消息提示框的方式显示异常的产生者。我们通过使用SoapException对象的Code属性来完成这个显示。如果异常是因为客户端的非法输入而产生的,那么Code属性被设置为Client。如果异常是因为Web服务代码(例如,据库服务器已经关闭)而产生的,则Code属性被设为Server。
然后,我们把包含在SoapException对象的Detail元素中的XML数据导入到一个XmlDocument对象中。类似于Web服务的代码,这里同样利用XmlNamespaceManager对象把命名空间与XmlDocument对象关联在一起。之后,取出包含在不同元素中的值,并把它们赋给本地变量。最后,使用消息提示框显示本地变量的值。 把它放在一起
至此,我们已经完成了客户应用程序,现在让我们运行测试它。如果运行客户程序,它将显示一个消息框(具有true值),那么则表明categories详细信息已经成功保存到数据库中。现在,从输入的XML数据中删除元素,运行客户程序。将会得到一个消息,表明异常的原因是客户程序,除此之外,还可以在SoapException对象中得到更多的异常信息。
正如前面所提到的那样,如果Web服务失败是由于服务器端的一些问题引起的,那么SoapException对象的Code属性应该被设置为Server。为了测试这个,修改Web服务中的连接字符串为一个无效值。现在,如果运行客户程序,将会得到一个表明异常的原因是Server的消息(该例中的Web服务)。
结论
本文中,我们已经了解到怎样使用SoapException对象来处理和传递异常给Web服务的客户端。我们还了解到SoapException对象是怎样利用SOAPfault编码(定义在SOAP规范中)来传递异常的。顺便,我们还讨论了处理客户端所产生的异常的步骤。虽然我们创建的应用的功能非常的简单,但是它给我们理解怎样抛出和处理Web服务中的异常提供了一个坚实的基础.
(出处:PConline)
饿虎岗资源网 Design By www.oxmxm.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
饿虎岗资源网 Design By www.oxmxm.com
暂无评论...
更新日志
2024年04月29日
2024年04月29日
- 物华弥新迷踪盘第1关怎么过 迷踪盘第1关通关方法
- win7没密钥怎么永久激活,w7系统激活密钥一键激活方法
- 怎么安装电脑系统版本,怎么安装电脑的系统
- 苹果电脑wps安装字体,苹果电脑wps怎么设置字体
- 活力美少女!《摇曳露营△》各务原抚子&志摩凛手办
- 《哥斯拉大战金刚2》票房破9亿 观影人次达2100万!
- 全新IP!《寂静岭2:重制版》开发商正在开发两款新作
- FlorilegiumandAshleySolomon-Haydn-SymphoniesNos.6,7,8LeMatin,Lemidi,LeSoir[flac]
- [PTC5186211]花痴系列-柏辽兹-幻想交响曲,Op.14-小泽征尔-波士顿交响乐团iso
- 欧阳菲菲-爱的路上我和你[东尼机构TONYLP-71LP黑胶转录]1977WAV+CUE
- 玩家确认《剑星》实体版可玩未审核版本:需断网安装
- 用火力战胜恐惧!《Backrooms Break》现已正式上线
- 晨报|《庄园领主》销量破百万 塔科夫PVE正式版将免费
- 冯天石《飞叶穿林——冯天石竹笛演奏专辑》[320K/MP3][92.25MB]
- 冯天石《飞叶穿林——冯天石竹笛演奏专辑》[FLAC/分轨][208.98MB]