WebService 学习笔记
一、?WebService学习笔记
在众多的交互式和分布式应用程序中,我们可能经常需要使用webservice,在这里我建立了自己的第一个webservice程序。并且尝试将我们的service服务发布到IIS,所用开发环境是vs2005。
1.????首先我们先建立一个web服务项目,打开vs2005,选择:新建—网站—ASP.NETWeb服务,选择我们的项目路径之后,确定,我们便得到了一个webservice项目。2.????项目有一个Service.asmx文件,在这里编写我们对外发布的服务接口
3.????完成之后,我们便可以对外发布我们的这些服务,这里有两种方式:
3.1.???第一种:我们编译运行我们的webservice项目,在得到的网页中地址栏的地址,便是我们服务的地址。如本例:http://localhost:2046/WebSite1/Service.asmx
3.2.???第二种:我们发布可以发布网站到IIS。在我们的webservice项目中,1:我们首先生成网站:选择工具---生成。然后发布网站:选择工具---发布网站选择地址,需要记住这个位置,也可以不改,就以默认的位置。如本例:
C:UsersAdministratorDocumentsVisualStudio 2005ProjectsWebSite1PrecompiledWebWebSite1
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.???前台布置如下:
?
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; ???????????} ???????} } |
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!