asp.net环境下Webservice服务的错误处理

来源:未知 责任编辑:智问网络 发表时间:2013-11-10 20:22 点击:

 

  在Asp.net Ajax技术中,我们在客户端往往用脚本调用WEB服务,当服务出现错误时(超时、除零),如何通知客户端,客户端又如何根据获取的信息提示用户?

    方法其实很简单,我们直接看下面的代码。

    1、新建一个服务: www.2cto.com

     [WebService(Namespace = "http://tempuri.org/")]

     [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

     [ScriptService]   //这里需要用到ScriptService方法,使得客户端可以用脚本访问此服务

     public class ErrorHand : System.Web.Services.WebService

    {

     [WebMethod]  //定义一个除法函数,注意b不能为0(当然我们演示的时候,输入的b肯定是0,目的就是看看出错到底怎么处理)

     public int Division(int a,int b){ return a/b;}

     }

    2、在新建的一个aspx页面上进行如下操作:

    

     <asp:ScriptManager ID="ScriptManager1" runat="server">

          <Services>//这里注意,要添加一个web服务引用,这样就可以在页面中使用服务函数了。

                   <asp:ServiceReference Path="~/ErrorHand.asmx" />

          </Services>

     </asp:ScriptManager>

     <input type="button" value="Click me" onclick="division(8,0)" />  //插入一个按钮,它触发division函数,下面我们看看脚本division函数如何调用服务端的Division服务函数。(8除以0)

     <script type="text/javascript" language="javascript">//定义脚本

            function division(a, b) { ErrorHand.Division(a, b, getSucceded, failed); }  //看到ErrorHang了吧,就是我们定义的WEB服务类,包含有Division函数,就是我们第1步定义的服务函数。failed是出错是的回调函数,就是Division出错是要执行的函数。

            function failed(error)     //执行回调函数,error参数是执行Division函数出错时返回的WebServiceError对象

           { 

                   var message = String.format("TimeOut:{0}\nMessage:{1}\nExceptionType:{2}\nStackTrace:{3}", error.get_timedOut(), error.get_message(), error.get_exceptionType(), error.get_stackTrace());   //格式化显示出错信息,这里format方法大家应该比较熟悉,error对象内建的方法,大家通过英文也能读的懂,就不在这里赘述。

                   alert(message);//显示信息。

          }

           function getSucceded(result)

          {   //如果正确时,显示从服务中调用的结果。

                  alert(result);

          }

     </script>

     通过上面的简单示例,和大家探讨了在asp.net 客户端中调用web服务出错时的处理方法,希望对大家能有帮助。

  作者 dizsong

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • 浅析.NET下XML数据访问新机制
    • asp.net 面试+笔试题目第1/2页
    • C# 邮件地址是否合法的验证
    • asp.net 设置GridView的选中行的实现代码
    • C#高级编程:数据库连接[1]
    • 经典C++程序1
    • IIS 自动回收导致后台定时器失效的问题解决
    • ASP.NET&#160;GridView列表代码示例
    • Asp.net MVC源码分析--Action Filter的链式调用
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1