SayHelloService.cs:
using System;using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class SayHelloService : System.Web.Services.WebService
{
public SayHelloService() { }
[WebMethod]
public string SayHello()
{
//Hello myHello = new Hello();
//return myHello.SayHello();
throw new Exception("我来搞破坏!");
}
}
这里我们手工抛出了一个异常。下面运行程序,会得到如下结果:
如上图,当出现异常时,不仅自动调用了异常处理回调函数,还很方便地取得了错误信息。
结束语
本篇介绍了从JavaScript中调用WebService的一般方法、基本原理及使用异常处理,并且回答了上一篇留 下的几个问题。然而还有一个问题没有讨论:到目前为止,我们调用的后台方法都是没有参数的,那么如果有参数,ASP.NET AJAX可以实现JavaScript变量类型和C#变量类型的自动转换吗?如果是复杂类型呢?如实体类、各种对象。再进一步,如果可以,应该怎么来做 呢?我们将在下一篇讨论这个问题。