zoukankan      html  css  js  c++  java
  • WebService客户端调用错误处理

    错误处理
    •调用时可以提供一个额外的错误回调函数
    •包括超时和服务器端抛出的异常
    •超时只能设置在WebService级别
    –或者设置在PageMethods对象上
    –无法在每个MethodCall时指定
    •Sys.Net.WebServiceError
    –timedout、message、exceptionType、stackTrace属性


    aspx
        <form id="form1" runat="server">
            
    <asp:ScriptManager ID="ScriptManager1" runat="server">
                
    <Services>
                    
    <asp:ServiceReference Path="ErrorHandling.asmx" />
                
    </Services>
            
    </asp:ScriptManager>
            
            
    <input type="button" value="getDivision" onclick="getDivision(5, 0)" />
            
    <input type="button" value="timeout" onclick="timeout()" />
            
            
    <script language="javascript" type="text/javascript">
                function getDivision(a, b)
                {
                    ErrorHandling.GetDivision(a, b, 
    null, failedCallback);
                }
                
                function timeout()
                {
                    ErrorHandling.set_timeout(
    2000);
                    ErrorHandling.Timeout(
    null, failedCallback);
                }
                
                function failedCallback(error)
                {
                    var message 
    = String.format(
                        
    "Timeout: {0}\nMessage: {1}\nExceptionType: {2}\nStackTrace: {3}",
                        error.get_timedOut(),
                        error.get_message(),
                        error.get_exceptionType(),
                        error.get_stackTrace());
                
                    alert(message);
                }
            
    </script>
        
    </form>

    cs
        protected void Page_Load(object sender, EventArgs e)
        {

        }

    ErrorHandling.asmx
    <%@ WebService Language="C#" Class="ErrorHandling" %>

    using System;
    using System.Web;
    using System.Web.Services;
    using System.Web.Services.Protocols;
    using System.Web.Script.Services;
    using System.Threading;

    [WebService(Namespace 
    = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo 
    = WsiProfiles.BasicProfile1_1)]
    [ScriptService]
    public class ErrorHandling  : System.Web.Services.WebService
    {
        [WebMethod]
        
    public int GetDivision(int a, int b)
        {
            
    return a / b;
        }

        [WebMethod]
        
    public int Timeout()
        {
            Thread.Sleep(
    5000);
            
    return 0;
        }
    }
  • 相关阅读:
    C#开发Unity游戏教程之游戏对象的属性变量
    C#开发Unity游戏教程之Scene视图与脚本的使用
    BeagleBone Black教程之BeagleBone Black使用到的Linux基础
    BeagleBone Black教程之BeagleBone Black设备的连接
    ARP协议详解之Gratuitous ARP(免费ARP)
    ARP协议详解之ARP动态与静态条目的生命周期
    ArduinoYun教程之Arduino环境与Linux环境的桥梁Bridge
    ArduinoYun教程之OpenWrt-Yun与CLI配置Arduino Yun
    ArduinoYun教程之配置Arduino Yun环境
    IIR数字滤波器
  • 原文地址:https://www.cnblogs.com/timy/p/1172846.html
Copyright © 2011-2022 走看看