hc6538 发表于 2017-2-13 08:24:37

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

  首先描述一下先决条件: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>
"http://tempuri.org/")]
= WsiProfiles.BasicProfile1_1)]
public class WebService : System.Web.Services.WebService {
public WebService () {
//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
    }

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”并且将其优先级提高:

  搞定。
页: [1]
查看完整版本: 在IIS上发布一个WebService,再发布一个网站调用这个WebService(实例)