现在的位置: 首页 > 综合 > 正文

WebService 学习笔记

2013年10月08日 ⁄ 综合 ⁄ 共 3466字 ⁄ 字号 评论关闭

一、 WebService学习笔记

在众多的交互式和分布式应用程序中,我们可能经常需要使用webservice,在这里我建立了自己的第一个webservice程序。并且尝试将我们的service服务发布到IIS,所用开发环境是vs2005

1.    首先我们先建立一个web服务项目,打开vs2005,选择:新建网站—ASP.NETWeb服务,选择我们的项目路径之后,确定,我们便得到了一个webservice项目。

2.    项目有一个Service.asmx文件,在这里编写我们对外发布的服务接口



[WebMethod(Description="求乘积方法")]

   public
double Multiplication(double i,double j)

   {

       return i * j;

   }

 

   [WebMethod(Description =
"
求和的方法")]

   public
double Addition(double i,double j)

   {

       return i + j;

   }

 

   [WebMethod(Description="求差的方法")]

   public
double Substract(double i,double j)

   {

       return i - j;

   }

 

   [WebMethod(Description="求商的方法")]

   public
double Division(double i,double j)

   {

       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
id="form1"
runat
="server">

   <div>

   <asp:TextBoxID="Num1"runat="server"></asp:TextBox>

            <selectid="selectOper"
runat=
"server">

                <option>+</option>

                <option>-</option>

                <option>*</option>

                <option>/</option>

            </select>

            <asp:TextBoxID="Num2"runat="server"></asp:TextBox>

            <spanid
= "E"
runat
="server"></span>

            <asp:TextBoxID="Result"runat="server"></asp:TextBox>

 

   </div>

   </form>

</body>

 

4.4.   后台代码如下:



protectedvoid Page_Load(object
sender,EventArgs e)

   {

       Button btn =
newButton();

       btn.Width = 20;

       btn.Text =
"=";

       btn.Click+=new
EventHandler(btn_Click);

       E.Controls.Add(btn);

   }

 

   void btn_Click(object sender,EventArgs
e)

   {

       if (Num1.Text !=
"" && Num2.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;

           }

       }

    }

 

抱歉!评论已关闭.