一、 WebService学习笔记
在众多的交互式和分布式应用程序中,我们可能经常需要使用webservice,在这里我建立了自己的第一个webservice程序。并且尝试将我们的service服务发布到IIS,所用开发环境是vs2005。
1. 首先我们先建立一个web服务项目,打开vs2005,选择:新建—网站—ASP.NETWeb服务,选择我们的项目路径之后,确定,我们便得到了一个webservice项目。
2. 项目有一个Service.asmx文件,在这里编写我们对外发布的服务接口
[WebMethod(Description="求乘积方法")]
public
{
return i * j;
}
[WebMethod(Description =
public
{
return i + j;
}
[WebMethod(Description="求差的方法")]
public
{
return i - j;
}
[WebMethod(Description="求商的方法")]
public
{
if (j != 0)
return i / j;
else
return 0;
} |
3. 完成之后,我们便可以对外发布我们的这些服务,这里有两种方式:
3.1. 第一种:我们编译运行我们的webservice项目,在得到的网页中地址栏的地址,便是我们服务的地址。如本例:http://localhost:2046/WebSite1/Service.asmx
3.2. 第二种:我们发布可以发布网站到IIS。在我们的webservice项目中,1:我们首先生成网站:选择工具---生成。然后发布网站:选择工具---发布网站选择地址,需要记住这个位置,也可以不改,就以默认的位置。如本例:
C:\Users\Administrator\Documents\VisualStudio 2005\Projects\WebSite1\PrecompiledWeb\WebSite1
2:我们可以新建一个目录,将我们发布到上面位置的所有文件拷贝到此目录下。如本例:C:\web
3:然后启动我们的IIS,需要说明的是,我用的是win7系统,新建一个应用程序(本例web):然后选择其物理路径指向上面的目录:C:\web,这样我们的IIS便部署好了,我们可以浏览我们的服务,本例为Service.asmx,右键浏览,这样我们在地址栏便可以看到我们的服务位置:
http://localhost/web/Service.asmx
部署后的IIS如下图所示:
图1
配置IIS
4. 以上的工作做完之后,我们便可以在其他应用程序里调用我们webservice,这里以一个asp.net项目为例。
4.1. 依然是新建一个网站项目:新建---ASP.NET网站,简单布置我们前台的页面。
4.2. 接下来我们需要添加web服务引用,也就是引用我们服务的位置,由于上面我们发布用了两种方法,这里我们也介绍我们的两种引用方法。
1:在项目上右击添加web服务引用,在URL地址栏填入我们上面第一种方法服务发布的位置:http://localhost:2046/WebSite1/Service.asmx如下图所示:
2:第二种方法只需在地址栏填入下列地址,
http://localhost/web/Service.asmx后续操作一样
图2 配置服务地址
图3
添加服务引用之后的项目
4.3. 前台布置如下:
<body>
<form
<div>
<asp:TextBoxID="Num1"runat="server"></asp:TextBox>
<selectid="selectOper"
<option>+</option>
<option>-</option>
<option>*</option>
<option>/</option>
</select>
<asp:TextBoxID="Num2"runat="server"></asp:TextBox>
<spanid
<asp:TextBoxID="Result"runat="server"></asp:TextBox>
</div>
</form>
</body> |
4.4. 后台代码如下:
protectedvoid Page_Load(object
{
Button btn =
btn.Width = 20;
btn.Text =
btn.Click+=new
E.Controls.Add(btn);
}
void btn_Click(object sender,EventArgs
{
if (Num1.Text !=
{
ServiceIIS.Service webService = new ServiceIIS.Service(); //第一种--服务位置:http://localhost/web/Service.asmx---实例化
WebServiceIIS.Service webService2 = new WebServiceIIS.Service();//第二种--服务位置:http://localhost:2046/WebSite1/Service.asmx--实例化
int oper = selectOper.SelectedIndex;
switch (oper)
{
case 0:
Result.Text = webService.Addition(double.Parse(Num1.Text),double.Parse(Num2.Text)).ToString();
break;
case 1:
Result.Text =webService.Substract(double.Parse(Num1.Text),double.Parse(Num2.Text)).ToString();
break;
case 2:
Result.Text =webService.Multiplication(double.Parse(Num1.Text),double.Parse(Num2.Text)).ToString();
break;
case 3:
Result.Text =webService.Division(double.Parse(Num1.Text),double.Parse(Num2.Text)).ToString();
break;
}
}
} |