1、首先在VS2008里面新建一个解决方案
文件—>新建—>项目,然后在Visual C#下面选Web,再在左边选ASP.NET Web 服务应用程序,在下面填好文件名称,位置,点确定。VS2008就会自动创建如下代码:
- using System;
- using System.Collections;
- using System.ComponentModel;
- using System.Data;
- using System.Linq;
- using System.Web;
- using System.Web.Services;
- using System.Web.Services.Protocols;
- using System.Xml.Linq;
- namespace WebService20080801
- {
- /// <summary>
- /// Service1 的摘要说明
- /// </summary>
- [WebService(Namespace = "http://tempuri.org/")]
- [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
- [ToolboxItem(false)]
- // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
- // [System.Web.Script.Services.ScriptService]
- public class Service1 : System.Web.Services.WebService
- {
- [WebMethod]
- public string HelloWorld()
- {
- return "Hello World";
- }
- [WebMethod]
- public string Love()
- {
- return "My Love";
- }
- }
- }
嗯?你说什么,没有public string Love()?当然~这个是我自己另建的一个,一般建好以后都是有"HelloWorld"的.....
2、建好文件了就生成吧
生成—>生成 xxxxxxxxxxxxxxx (U) Shift+F6,嗯?xxxxxxxxxxxxxxxx是什么?就是你建的解决方案的名称啊~
3、生成好了就发布,应为这个是WebService啊,要给其他页面引用的嘛~
生成—>发布 xxxxxxxxxxxxxxx (H) ,这里的xxxxxxxxxxxxxxx 就不要说了吧~点完发布会弹出一个对话框,里面的选项什么的都不要去管他,我们只要指定一个目标位置就行了,这个随便建在哪儿都行,但要记住在什么地方,下面要用的。然后点发布就OK了。
4、配置IIS
打开IIS,这个都知道在哪儿的吧~在IIS里面,默认网站上点右键—>新建—>虚拟目录,别名随便填的,只要记住就好了,目录这里就要找到我们在3里面把文件发布的地址,定位到那里。然后一直下一步,完成就可以了。
这个时候就大功告成了,打开IE,在地址框里面输入http://localhost/虚拟目录名/Service1.asmx来验证一下了,以上步骤都正确的话就会出现下面的结果了
首次运行.asmx的时候防火墙杀毒软件会报警,这个不用管,放过就行了~
5、创建网站
我们的WebService建好以后就通过建一个网站来实现它。
在解决方案管理器里面,解决方案'xxxxxxxxxxxxx'上点右键—>添加—>新建网站,在弹出的对话框里面选ASP.NET网站,确定后新建一个网站。
建好了以后在这个项目上继续右键—>添加 Web 引用(E),弹出对话框,你可以在Url这栏里面手动添加你的.asmx文件地址,也就是http://localhost/虚拟目录名/Service1.asmx 然后点前往,也可以在下面的框里面选 本地计算机上的 Web 服务 然后选择asmx的地址,选好后,那个框里面会显示出我们刚才在IE浏览器里面所看到的信息,这样就说明选对了,在左边写一个自己的Web引用名,点击添加引用按钮,就OK了,这个Web引用就被我们添加到这个项目里面了。
6、创建程序
下面就是怎么实现的问题了,我们在页面上拖一个Button,再拖一个Lable,在Button的OnClick事件里面写
- protected void btnWebService_Click(object sender, EventArgs e)
- {
- //实例化一个WEB服务对象
- MyWebService.Service1 ws = new MyWebService.Service1();
- //ws.HLove()是调用WEB服务中的这个Love方法
- lblMessage.Text = ws.Love();
- }
MyWebService就是我们刚才在引用对话框里面自己写的引用空间名啦~这段代码很简单。OK,编译,调试,嘿嘿在页面点击按钮,是不是显示你在Service1里面内容啦~
如果你没有建public string Love()的话,最后一句就改成ws.HelloWorld();页面就显示public string HelloWorld()里面return的内容啦~
到这里一个简单的WebService调用就完成了。重要的一点,在.net的WEB服务API中,除了一般的数据类型外,还可以返回结构和DataSet对象,有了这一点,就可以构建我们大多数的数据库应用了。哈哈~