在IIS上发布一个WebService,再发布一个网站调用这个WebService(实例)

时间:2022-12-15 08:48:29

首先描述一下先决条件: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,再发布一个网站调用这个WebService(实例)

但是这不是我们想要的结果,在IIS中查看,原来应该显示WebService.asmx

在IIS上发布一个WebService,再发布一个网站调用这个WebService(实例)

解决办法:

在IIS中右键单击webservice1,选择属性--》文档中添加“WebService.asmx”并且将其优先级提高:

在IIS上发布一个WebService,再发布一个网站调用这个WebService(实例)

搞定。