标签:
WebService,即Web服务,能使得运行在不同机器上的不同应用无须借助,专门的第三方软件或硬件,就可相互交换数据或集成.
第一次选择WebService,是为了替代数据库远程连接.我们都知道当SQL允许远程时,则要打开某一端口.但这一点在我们已经部署好的服务器上,却是不被允许的,于是就选择WebService来代替了.当然现在我们也可以选择WCF来完成.不过这不是我们今天的主题.
WebService返回的数据为XML,这是我们都很熟悉的一种数据方式,大大方便了我们的工作当然,WebService给我们带来的好处远不止这些.我不想讲得更多.相信当你能够熟练运用WebService后,你会发现这是一把锋利的宝刃.
对于初次接触WebServcie的人来说,长篇理论,不如一个实例来得更实际些,我们更看重的是到底如何能够创建一个WebService并且将其部署,和使用.
下面我将逐步的完成一个加减乘除功能的WebServic.
开发环境:VS2015
IIS环境:WIN7 IIS7
步骤:
1.打开VS2015,新建空项目,注意选择.NET Framework的版本.
2.新建好项目后,在项目中添加一个WebService项
打开这个文件,并添加代码,如下
3.运行测试(可以省略)
4.WebService打包发布
此时,我们已经完成这个WebService的代码部分.接下来我们要将这个WebService打包发布
在项目上点击右键,点击菜单中的发布
此时出现如下页面
点击自定义 新建配置文件
确定 进入下一个配置窗口 选择"文件系统"
选好文件夹 进入下一步
点击发布
发布成功提示
完成以上步骤后,我们可以在设置文件生成的文件夹内看到生成的以下文件
5.上传IIS服务器
现在我们要将生成的文件拷贝到已经部署好的IIS服务器上:在服务器上新建文件夹,将文件拷贝至文件夹内,并且为文件夹设置匿名权限.
需要注意的是:我们的这个WebService是基于.NET 4开发的.如果你的IIS默认使用的是.NET 2.0,那么发布后将会出现异常,而无法访问.
查看一下应用程序池的设置
6.测试是否发布成功
此时我们已经完成了这个WebService的创建和部署.接下来,我们要在本地使用它
7.打开VS2015,新建项目,项目名为WebServiceUse
8.在项目中添加新建项
9.在项目中引用项上点击右键,选择添加服务引用,显示界面如下:
点击“高级”
添加Web引用
添加先前发布的WebService地址,点击右侧 箭头 查找
添加引用
引用完成.
10.编写测试代码
接下来,我们在WebForm的cs文件中写如下代码
public partial class WebServiceUseTest : System.Web.UI.Page { protected int totNum = 0; protected void Page_Load(object sender, EventArgs e) { localhost.WebServiceTest wst = new localhost.WebServiceTest(); totNum = wst.Sum(2, 29); } }
HTML
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> totNum=<input type="text" id="numtest" value="<%=totNum %>" /> </body> </html>
11.页面测试
此时我们已经完成了这个WebService的使用过程
其实,这个实例在开发中,没有任何意义.
但是通过这个实例,我们可以看出WebService的复用性,简单性是非常好的.
在VS的环境下,我们可以轻易完成一个WebService的开发过程.
而WebService返回给我们的XML数据方式,也可以充分的和JavaScript等任何一种可以处理XML的语言相结合来
完成我们的需求.
在这里要注意,当WebService连接数据库时,我们要适当的给WebService进行加密.
加密的方式很多,你可以通过在IIS服务器上禁止匿名访问来实现,也可以给WebService的验证增加验证内容,最
简单的就是加上用户名和密码.
还要注意,不要用有含义的方法名称,比如Login或者PayOrder等,回传数据不要使用bool值,尽量使用字符串来替
代,最好在字符串中加上干扰码等.
标签:
原文地址:http://www.cnblogs.com/wangfuyou/p/5161895.html