首先描述一下先决条件:IIS可用,VS2005可用。
好,现在开始:
首先写一个WebService并把它发布到IIS上:
在IIS上的默认网站下新建一个“虚拟目录”,取名为“webservice1”。打开VS2005新建一个网站---》空网站---》在“位置”上选择本地IIS,选择新建好的“虚拟目录”-“webservice1”.确定。定义一些要发布的webservice,这里我们就采用自动生成的helloworld这个方法,点击运行。成功。
using System; using System.Web; using System.Collections; using System.Web.Services; using System.Web.Services.Protocols; /// <summary> /// WebService 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class WebService : System.Web.Services.WebService { public WebService () { //如果使用设计的组件,请取消注释以下行 //InitializeComponent(); } [WebMethod] public string HelloWorld() { return "Hello World"; } }
然后写一个网站,调用这个已经在IIS 上发布的WebService.首先在IIS上的默认网站下新建一个“虚拟目录”,取名为“invokeWebService”。新建一个ASP.NET网站,拖连个控件,一个Button,一个TextBox,双击Button添加响应函数。在添加响应函数之前,需要添加web引用,将上个发布好的webservice1的网址拷过来(http://10.13.30.160/webservice1/),右键点击项目,选择添加web引用,将网址粘贴,go.发现一个webservice.记住这个服务的名称(本例中为:WebReference)点击确定。现在可以添加Button的响应函数了。
protected void Button1_Click(object sender, EventArgs e) { WebReference.WebService web=new WebReference.WebService(); TextBox1.Text = web.HelloWorld(); }
最后,运行这个网站,添加进了web.config。在浏览器上输入:http://10.13.30.160/invokeWebService/就好了,点击Button,Text会显示“Hello,World”.
很关键的一点:起初http://10.13.30.160/webservice1/显示的是:
但是这不是我们想要的结果,在IIS中查看,原来应该显示WebService.asmx
解决办法:
在IIS中右键单击webservice1,选择属性--》文档中添加“WebService.asmx”并且将其优先级提高:
搞定。