WebService:一种跨编程语言和操作系统平台的远程调用技术,SOAP、WSDL(WebServicesDescriptionLanguage)、UDDI(UniversalDescriptionDiscovery andIntegration)之一, soap用来描述传递信息的格式, WSDL 用来描述如何访问具体的接口, uddi用来管理,分发,查询webService 。

SOAP:简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。

WSDL:网络服务描述语言是Web Service的描述语言,它包含一系列描述某个web service的定义。

环境:VS2013  

IIS:IIS6

一、搭建

1、新建项目,新增一个ASP.NET空Web应用程序,选择.NET Framework4

2、在项目中,添加一个Web服务(ASMX)

3、在WebService1.asmx文件中添加服务端方法,此处添加一个测试方法
注意:在方法前不要遗漏   [WebMethod],使远程Web客户端可以调用此方法。

二、分布WebService

1、右键项目,选择菜单中的“发布”

2、新建配置文件,“config1”

选择连接选项,发布方法选择文件系统,选择WebService需要发布的位置

设置:配置成Release

发布webService,发布成功,输出显示发布成功,在目标位置可以看到如下文件。

注意:目标位置不可选择桌面,桌面下的文件有访问权限,容易导致下面发布到IIS上,无法访问。至于C盘下的路径是否都不可访问,此处没有测试过。

三、部署IIS

1、在Default Web Site下添加应用程序,设置别名,这个随你高兴,无所谓,物理路径选择之前WebService发布位置。

2、点击浏览,可在浏览器中看到如下显示,点击“WebService1.asmx”,显示服务器错误,我们可以看到版本信息那栏显示的.NET Framework是2.0,

但是我们前面在创建WebService时选择的是.NET Framework 4.0。

3、在应用程序池添加一个.NET Framework 4.0的程序池。

选择WebService的应用程序的高级设置,把应用程序池改为新设置的程序池,重复上面2步骤,

在浏览器中就可以看到我们刚才在webService.asmx中添加的方法,

点击服务说明,可以跳转到wsdl模式下。

     

至此,WebService发布部署成功。

四、客户端调用WebService服务端方法

1、新建项目,新建控制台应用程序,选择项目,右键菜单,添加服务引用。

2、在地址处,添加之前发布的WebService服务,如在下拉处没有找到,点击"发现",即可找到,

选择好地址后,点击"转到",可查看到服务。

3、点击“高级”,点击“添加Web引用”,URL选择WebService服务,添加引用

添加成功,可在项目中看到web引用。

4、在客户端程序中调用服务端方法

五、WebService和实体类的应用

1、在实体类前加上[Serializable],webService调用时[XmlInclude(typeof(Book))]

              

2、重新生成项目,发布WebService,在客户端更新web引用,就可以调用Book实体和新建方法。

调用方法及结果如下:

3、有继承类的使用

最新文章

  1. 几种简单的负载均衡算法及其Java代码实现
  2. C#文件流读写文件的简单winform实现
  3. .Net Mvc3框架调用服务端控件解决方案
  4. 《android 导入第三方源码jar包遇到的坑》
  5. (三)Linux命令基本格式以及文件处理命令
  6. Web版RSS阅读器(三)——解析在线Rss订阅
  7. WebLogic部署报java.lang.ClassCastException: weblogic.xml.jaxp.RegistrySAXParserFactory cannot be cast to javax.xml.parsers.SAXParserFactory
  8. api-gateway实践(02)新服务网关 - 运行环境
  9. 数据库之redis篇(3)—— Python操作redis
  10. Windows Community Toolkit 4.0 - DataGrid - Part02
  11. 在C 与 C++混编中, 出现error LNK2019: 无法解析的外部符号 "int __cdecl main_(int,char * *)" (?main_@@YAHHPEAPEAD@Z),该符号在函数 main 中被引用
  12. 安装Java语言的jdk,配置java环境变量
  13. class path resource [spring/applicationContext.xml] cannot be opened because it does not exist
  14. JAVA如何调用mysql写的存储过程
  15. ibatis Dynamic总结(ibatis使用安全的拼接语句,动态查询)
  16. Android全屏的两种方法
  17. MySQL修改端口号操作
  18. NAS、SAN和DAS的区别
  19. TS流解析 一
  20. windows 10上利用Microsoft RTF文件(CVE-2017-0199)进行攻击

热门文章

  1. Ground Truth
  2. GPU,CUDA,cuDNN的理解
  3. thinkPHP3.2.3 框架
  4. 【BZOJ 3326】[Scoi2013]数数
  5. spring 和 mybatis 整合过程 (包含分页)
  6. C#WinForm POST方式提交给网页(与网页交互) (转)
  7. 本地私有库的实现 pod
  8. sublime中设置view_in_browser
  9. D - Frogger
  10. Linux链接器脚本详解