WebService,即Web服务,能使得运行在不同机器上的不同应用无须借助,专门的第三方软件或硬件,就可相互交换数据或集成.

第一次选择WebService,是为了替代数据库远程连接.我们都知道当SQL允许远程时,则要打开某一端口.但这一点在我们已经部署好的服务器上,却是不被允许的,于是就选择WebService来代替了.当然现在我们也可以选择WCF来完成.不过这不是我们今天的主题.

WebService返回的数据为XML,这是我们都很熟悉的一种数据方式,大大方便了我们的工作当然,WebService给我们带来的好处远不止这些.我不想讲得更多.相信当你能够熟练运用WebService后,你会发现这是一把锋利的宝刃.

对于初次接触WebServcie的人来说,长篇理论,不如一个实例来得更实际些,我们更看重的是到底如何能够创建一个WebService并且将其部署,和使用.

下面我将逐步的完成一个加减乘除功能的WebServic.

开发环境:VS2012

IIS环境:WINSERVER2008R2

IIS7.5

第一步:打开VS2012,新建空项目,注意选择.NET Framework的版本.这里我选择的是.NET Framework 4

新建好项目后,在项目中添加一个WebService项

打开这个文件,我们可以看到,代码如下

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Web;

usingSystem.Web.Services;

namespaceCalculateService

{

///

/// WebService1 的摘要说明

///

[WebService(Namespace = "http://tempuri.org/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

[System.ComponentModel.ToolboxItem(false)]

// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。

// [System.Web.Script.Services.ScriptService]

publicclassCalCulService : System.Web.Services.WebService

{

[WebMethod]

publicstringHelloWorld()

{

return"Hello World";

}

}

}

将HellowWorld这段代码删除,修改后如下

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Web;

usingSystem.Web.Services;

namespaceCalculateService

{

///

/// CalCulService 的摘要说明

///

[WebService(Namespace = "http://login.wxjy.info")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

[System.ComponentModel.ToolboxItem(false)]

// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。

// [System.Web.Script.Services.ScriptService]

publicclassCalCulService : System.Web.Services.WebService

{

[WebMethod]

publicintSum(inta,intb)

{

returna + b;

}

[WebMethod]

publicintSub(inta,intb)

{

returna - b;

}

[WebMethod]

publicdoubleMult(doublea,doubleb)

{

returna * b;

}

[WebMethod]

publicdoubleDiv(doublea,doubleb)

{

returna / b;

}

}

}

此时,我们已经完成这个WebService的代码部分.接下来我们要将这个WebService打包发布

在项目上点击右键,点击菜单中的发布

此时出现如下页面

点击下拉菜单选择新建配置文件

完成以上步骤后,我们可以在设置文件生成的文件夹内看到生成的以下文件

现在我们要将生成的文件拷贝到已经部署好的IIS服务器上:在服务器上新建文件夹,将文件拷贝至文件夹内,并且为文件夹设置匿名权限.

现在我们在IIS中添加网站

需要注意的是:我们的这个WebService是基于.NET 4开发的.如果你的IIS默认使用的是.NET

2.0,那么发布后将会出现异常,而无法访问.

查看一下应用程序池的右边的应用程序池默认设置

提供两种解决方案:第一种,在上面的表格中,将应用程序池默认改为4.0即可.当然这是指你的IIS中没有需要2.0的应用程序和网站.

如果你的IIS中还有其它的需要.NET

2.0的应用程序,这时候你可以选择第二个办法

首先添加一个应用程序池

然后添加网站,将网站的应用程序池改为新建的应用程序池

当然,我们也可以将这个项目的.NET版本改为3.5,然后重新打包发布.那么就不需要添加对4.0的支持了.

添加完毕,启动网站,此时可以关闭与服务器的连接了.

在本地的浏览器中输入地址

此时我们可以看到以下的界面

此时我们已经完成了这个WebService的创建和部署.接下来,我们要在本地使用它

打开VS2012,新建项目,项目名为TestCalCul

在项目中添加新建项

在项目中引用项上点击右键,选择添加服务引用,显示界面如下:

点击左下角的高级,出现界面如下

点击添加Web引用,出现界面如下

在URL中输入我们发布的WebService的URL地址,系统会自动搜索到服务.并且为Web引用设置一个引用名.此引用名将是我们在项目中引用这个服务的命名空间

点击添加引用,引用完成.

接下来,我们在WebForm1的cs文件中写如下代码

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Web;

usingSystem.Web.UI;

usingSystem.Web.UI.WebControls;

//不要忘记为WebService添加using引用

usingTestCalCul.MyWebService;

namespaceTestCalCul

{

publicpartialclassWebForm1 : System.Web.UI.Page

{

protectedvoidPage_Load(objectsender, EventArgs e)

{

CalCulService cal = newCalCulService();

doublea = 29755;

doubleb = 112.58;

Response.Write(cal.Mult(a, b).ToString());

}

}

}

接下来,在浏览器中运行该项目.可以看到如下结果

此时我们已经完成了这个WebService的使用过程

其实,这个实例在开发中,没有任何意义.

但是通过这个实例,我们可以看出WebService的复用性,简单性是非常好的.

在VS的环境下,我们可以轻易完成一个WebService的开发过程.

而WebService返回给我们的XML数据方式,也可以充分的和JavaScript等任何一种可以处理XML的语言相结合来

完成我们的需求.

在这里要注意,当WebService连接数据库时,我们要适当的给WebService进行加密.

加密的方式很多,你可以通过在IIS服务器上禁止匿名访问来实现,也可以给WebService的验证增加验证内容,最

简单的就是加上用户名和密码.

还要注意,不要用有含义的方法名称,比如Login或者PayOrder等,回传数据不要使用bool值,尽量使用字符串来替

代,最好在字符串中加上干扰码等.

vs12新建ajax,VS2012下WebService 的创建,部署和使用相关推荐

  1. linux新建图片,Fedora 下的图像创建程序 | Linux 中国

    原标题:Fedora 下的图像创建程序 | Linux 中国 Fedora 有很多程序可以帮助你的创造力.从数字绘图.矢量到像素艺术,每个人都可以在这个周末发挥创意. -- Ryan Lerch 致谢 ...

  2. WebService 的创建,部署和使用

    WebService,即Web服务,能使得运行在不同机器上的不同应用无须借助,专门的第三方软件或硬件,就可相互交换数据或集成. 第一次选择WebService,是为了替代数据库远程连接.我们都知道当S ...

  3. vs2017c语言没有空项目,「vs2017新建项目」visual studio 2017 创建空项目和桌面向导下的空项目...

    vs2017新建项目: visual studio 2017 创建空项目和桌面向导下的空项目 用VS2013编写和调试C语言程序,首先应建立项目工程.文件-->新建-->项目在 新建项目窗 ...

  4. Windows7+VS2012下OpenGL 4的环境配置

    系统环境 Windows 7 Ultimate x64,Visual Studio Ultimate 2012 Update 4,和一块支持OpenGL 4.x的显卡. 准备工作 首先用GPU Cap ...

  5. jquery ajax下拉联动,jQuery Ajax MVC 下拉框联动

    无刷新下拉框联动方法: Controllers代码 public JsonResult DH_Change(string DH_ID) { List TeamLeaderList = FinanceD ...

  6. vs2012下 error4996

    原文链接:http://blog.csdn.net/xidianzhimeng/article/details/11457045 分类: VS使用学习 2013-09-09 08:37 24人阅读 评 ...

  7. ajax的访问 WebService 的方法

    转自原文 ajax的访问 WebService 的方法 如果想用ajax进行访问 首先在web.config里进行设置 添加在 <webServices> <protocols> ...

  8. linux下多线程的创建与等待详解 【转载】

    linux下多线程的创建与等待详解 http://blog.chinaunix.net/uid-23842323-id-2656572.html 所有线程都有一个线程号,也就是Thread ID.其类 ...

  9. VS2012下基于Glut 矩阵变换示例程序2:

    在VS2012下基于Glut 矩阵变换示例程序:中我们在绘制甜圈或者圆柱时使用矩阵对相应的坐标进行变换后自己绘制甜圈或者圆柱.我们也可以使用glLoadMatrixf.glLoadMatrixd载入变 ...

最新文章

  1. mxnet报错解决:AttributeError: module 'mxnet.context' has no attribute 'num_gpus'
  2. C语言fgetpos()函数:获得当前文件的读写指针(转)
  3. C++ leetcode 21. 合并两个有序链表 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
  4. 徐教授的对于商业模式创新的讲座!十分有用!
  5. Redis(2)---数据持久化
  6. arcgis xml 下载 切片_openlayers6结合geoserver利用WFS服务实现图层编辑功能(附源码下载)...
  7. js 基础 -- 循环、函数调用 、全局和局部变量、异常捕获、事件
  8. Visual Studio Code中的无标题(工作区)
  9. ubuntu安装最新版apktool(最新版)反编译工具
  10. 一文让你彻底了解iOS字体相关知识
  11. 调试at91-sama5d27遇到的一些问题(3)
  12. 个别海康摄像机通过国标GB28181接入EasyCVR,视频无法打开的解决办法
  13. Unity for易接sdk接入文档
  14. vue中的混入mix
  15. mysql通配符_MySQL中的通配符
  16. Reapp 混合应用 - 帮助构建前所未所的强大应用(Reapp Hybrid apps - help you build powerful apps like never before)
  17. linux Fedora安装桌面,在Fedora Linux上安装Elementary OS桌面的方法
  18. 5个可以网上赚钱的副业,聪明人早就开始做了,现在了解也不迟!
  19. 三分钟了解企业产品发布会直播全流程
  20. Android studio制作计算器源代码

热门文章

  1. js数组查找最接近_在JavaScript数组中找到最小元素的位置
  2. python中函数定义_Python中函数的定义与使用
  3. hilbert谱 matlab,怎么在matlab中做信号hilbert边际谱分析
  4. c语言正确理解以下名词及其含义,C程序作业答案.doc
  5. php mysql5.7.110安装教程_MYSQL教程mysql5.7.19 winx64安装配置方法图文教程(win10)
  6. CTF工具-gdb插件peda,pwndbg安装
  7. 谢华亮 php,谢华亮: PHP4和PHP5性能测试和对比
  8. 云耀云服务器性能怎么样,华为云测评:2CPU+4G内存+5M带宽的云耀云服务器HECS
  9. android jni 调用java对象_Android NDK开发之Jni调用Java对象
  10. android版本10好不好,一加正式推送Android 10系统 流畅性怎么样