C#远程调用技术WebService修炼手册

简介: 一、课程介绍一位伟大的讲师曾经说过一句话:事物存在即合理!意思就是说:任何存在的事物都有其存在的原因,存在的一切事物都可以找到其存在的理由,我们应当把焦点放在因果关联的本质上。所以在本次分享课开课之前,我们要“约法三章”不谈论以下几个比较“严肃”和“敏感”的话题:WebServi...

一、课程介绍

一位伟大的讲师曾经说过一句话:事物存在即合理!意思就是说:任何存在的事物都有其存在的原因,存在的一切事物都可以找到其存在的理由,我们应当把焦点放在因果关联的本质上。所以在本次分享课开课之前,我们要“约法三章”不谈论以下几个比较“严肃”和“敏感”的话题:WebService已经过时了啦,学习它干什么用啊!为什么要用WebService,而不用基于当前流行的RestFul ASP.NET WebAPI ?  对于上面的问题阿笨的回答很简单:因为它就是它,不一样烟火的WebService!

本次分享课您将学习到以下干货知识点:

1)、WebService技术调用原理图。

2)、C# WebService常用的几种调用方式。

3)、C# WebService调试小技巧和开发必备工具分享。

4)、实战演练之如何通过优雅的方式进行WebService调用。  优不优雅,你看了就知道了,我们尽可能的Write Less Do More !(强烈推荐)

在此插播一条硬广告:下一堂分享课程阿笨计划将给大家带来《C#远程调用技术WebService葵花宝典》,课程的重点将给大家分享一下“C# WebService两种不同引用使用方式”,“WebService如何使用异步调用”以及“关于C# WebService如何让客户端以安全的方式进行调用目前常用几种的解决方案”等等。阿笨尽量给大家带来一些干货分享!

如果您对本次分享课感兴趣的话,那么请跟着阿笨一起学习吧。废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。


hi大家好,我的名字叫WebService!

二、概念名称含义解释

2.1、什么是远程调用技术(简称:RPC技术)?

一个系统远程调用另一个系统的服务,来获取远程系统的业务数据。

2.2、为什么使用RPC技术?

基于安全性的考虑,一般企业不会开放自己的数据库,只能使用远程调用技术。

2.3、什么是SOAP?

SOAP:(Simple Object Access Protocol)简单对象存取协议。SOAP最早是针对RPC的一种解决方案;SOAP是XML文档形式的调用方法的规范。

2.4、什么是WebService?

WebService是一种使用HTTP传输的SOAP协议的远程调用技术。

2.5、WebService采用的是什么通信协议?

WebService 采用的的基本通信协议是SOAP ,它是在分散或分布式环境中交换信息,它基于XML的协议,通过SOAP协议可以实现不同项目、不同地点、甚至异地调用应用程序。

2.6、为什么说WebService是跨平台的?

实际上,WebService 的主要目标是跨平台的可互操作性。为了达到这一目标,WebService 完全基于XML (可扩展标记语言)、XSD (XMLSchema )等独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台。

2.7、WebService实现包含那三要素?

WSDL作用:webservice服务端的使用说明书。(Web Service Description Language)

SOAP作用:规范XML标签。

UDDI:提供webservice服务端的搜索和注册功能。

2.8、WebService有哪些优势?

1)、可操作的的分布式应用程序。

可以实现不同应用程序和在不同系统平台上开发出来的应用程序之间通信。

2)、普遍性、使用HTTP和XML进行通信。

任何支持HTTP和XML 技术的设备都可以拥有和访问Web Service,不同平台不同开发语言照样可以调用我们发布的Web Service。

3)、Web Service 甚至可以穿越防火墙,真正的自由通信。

一般要访问的Web服务器以及要访问的Web Service的客户端很可能位于防火墙后面,都默认关闭其它端口而开发HTTP端口,而Web service 正是基于HTTP的,所以它可以穿越防火墙.

4)、异构平台之间的互通性。

Web Service 最大的优势是提供了异构平台的无缝街接技术手段。由于不同的用户使用不同的硬件平台,不同的操作平台,不同的操作系统,不同的软件,不同的 协议通信,这就产生了互相通信的需求。 Web Service 使任何两个应用程序,只要能读写XML,那么就能互相通信。 通过 SOAP 协议实现异地调用。

小结:

阿笨用通俗一点语言解释就是在当前C#、JAVA、PHP等语言都可以使用标准的WebService技术实现不同语言的应用程序之间进行互相通信,即互相调用。

三、WebService技术调用原理图


WebService工作原理图一



WebService工作原理图二

3.1、Webservice是如何实现远程调用?三要素在webservice的作用?

(1)Webservice原理:webservice是一种使用http传输的SOAP协议的数据的远程调用技术。

(2) WSDL作用:webservice服务端的使用说明书。(Web Service Description Language)

(3)SOAP作用:规范XML标签。

(4) UDDI:提供webservice服务端的搜索和注册功能。

3.2、WebService关键原理说明:

服务者:发布者需要部署Webservice服务应用程序。

调用者:客户端需要参考webservice服务端的使用说明书(WSDL)进行调用。

四、C# WebService常用的几种调用方式

4.1、C#通过Dynamic动态调用WebService。

 其实与手工创建添加引用步骤一样,只是在这里把手动变成了自动而已,动态生成代理类,利用反射动态调用了方法。详细请参考:[C#通过Dynamic动态调用WebService.pdf]文档。

4.2、C#通过模拟HTTP请求协议Get、POST方式进行调用WebService。(根据个人项目情况使用)

详细请参考:[C#通过模拟HTTP请求协议Get、POST方式进行调用WebService.pdf]文档。

4.3、通过手动生成客户端WSDL代理类进行调用。(根据个人项目情况使用)

采用微软给我们提供的wsdl.exe工具生成wsdl本地代理类。

4、通过SOAP协议手动引用方式进行调用。(微软强烈推荐)

五、C# WebService调试小技巧和开发必备工具分享

5.1、C# 如何调试WebService服务以及调试远程Web服务。

详细请参考[C# WebService如何远程调试.pdf]

5.2、Webservice调试利器

1、微软提供的.NET WebService Studio

下载地址:http://webservicestudio.codeplex.com/

2、Storm (推荐)

下载地址:http://storm.codeplex.com/ ,顺便提及下该工具还有一个它的“同胞兄弟”叫 WCF Storm 哦。

3、soapui(强烈推荐)

    下载地址:https://www.soapui.org/downloads/latest-release.html

六、实战演练之如何通过优雅的方式进行WebService调用


统一入口获取指定T类型的WebService服务实例


客户端调用者将采用统一入口进行访问

七、WebService修炼手册在线学习和演示

在线观看地址:跟着阿笨一起玩NET

微信公众号:ABenDotNet




目录
相关文章
|
人工智能 运维 算法
基于 C# 深度优先搜索算法的局域网集中管理软件技术剖析
现代化办公环境中,局域网集中管理软件是保障企业网络高效运行、实现资源合理分配以及强化信息安全管控的核心工具。此类软件需应对复杂的网络拓扑结构、海量的设备信息及多样化的用户操作,而数据结构与算法正是支撑其强大功能的基石。本文将深入剖析深度优先搜索(Depth-First Search,DFS)算法,并结合 C# 语言特性,详细阐述其在局域网集中管理软件中的应用与实现。
273 3
|
缓存 监控 算法
基于 C# 网络套接字算法的局域网实时监控技术探究
在数字化办公与网络安全需求增长的背景下,局域网实时监控成为企业管理和安全防护的关键。本文介绍C#网络套接字算法在局域网实时监控中的应用,涵盖套接字创建、绑定监听、连接建立和数据传输等操作,并通过代码示例展示其实现方式。服务端和客户端通过套接字进行屏幕截图等数据的实时传输,保障网络稳定与信息安全。同时,文章探讨了算法的优缺点及优化方向,如异步编程、数据压缩与缓存、错误处理与重传机制,以提升系统性能。
327 2
|
Web App开发 Linux C#
C# 网页截图全攻略:三种技术与 Chrome 路径查找指南
本文主要介绍了在 C# 中实现网页截图的几种技术及相关要点。涵盖了 PuppeteerSharp、Selenium 和 HtmlToImage 三种方式,分别阐述了它们的安装步骤及核心代码。同时,针对在 C# 中寻找 Windows 上 chrome.exe 路径这一问题,分析了未安装 Google Chrome 和已安装两种情况下的查找原因,并给出了相关参考链接,还列举了一系列与 C# 使用 Selenium、获取 chrome.exe 路径以及在 Linux 上部署相关的参考资料。
545 11
|
SQL 小程序 API
如何运用C#.NET技术快速开发一套掌上医院系统?
本方案基于C#.NET技术快速构建掌上医院系统,结合模块化开发理念与医院信息化需求。核心功能涵盖用户端的预约挂号、在线问诊、报告查询等,以及管理端的排班管理和数据统计。采用.NET Core Web API与uni-app实现前后端分离,支持跨平台小程序开发。数据库选用SQL Server 2012,并通过读写分离与索引优化提升性能。部署方案包括Windows Server与负载均衡设计,确保高可用性。同时针对API差异、数据库老化及高并发等问题制定应对措施,保障系统稳定运行。推荐使用Postman、Redgate等工具辅助开发,提升效率与质量。
556 0
|
开发框架 算法 .NET
C#/.NET/.NET Core技术前沿周刊 | 第 15 期(2024年11.25-11.30)
C#/.NET/.NET Core技术前沿周刊 | 第 15 期(2024年11.25-11.30)
286 6
|
开发框架 Cloud Native .NET
C#/.NET/.NET Core技术前沿周刊 | 第 16 期(2024年12.01-12.08)
C#/.NET/.NET Core技术前沿周刊 | 第 16 期(2024年12.01-12.08)
332 6
|
程序员 C# 数据库
C# 比较对象新思路,利用反射技术打造更灵活的比较工具
中途接手的项目,碰到需要在更新对象信息时比较并记录差异的需求,最变态的还有附加要求,怎么办?有没有既能满足需求又能对项目影响最小的方法呢?分享这个我封装的方法,一个利用反射技术打造的更灵活的比较工具
282 5
|
开发框架 监控 .NET
C#进阶-ASP.NET WebForms调用ASMX的WebService接口
通过本文的介绍,希望您能深入理解并掌握ASP.NET WebForms中调用ASMX WebService接口的方法和技巧,并在实际项目中灵活运用这些技术,提高开发效率和应用性能。
1076 5
|
SQL API 定位技术
基于C#使用winform技术的游戏平台的实现【C#课程设计】
本文介绍了基于C#使用WinForms技术开发的游戏平台项目,包括项目结构、运行截图、实现功能、部分代码说明、数据库设计和完整代码资源。项目涵盖了登录注册、个人信息修改、游戏商城列表查看、游戏管理、用户信息管理、数据分析等功能。代码示例包括ListView和ImageList的使用、图片上传、图表插件使用和SQL工具类封装,以及高德地图天气API的调用。
基于C#使用winform技术的游戏平台的实现【C#课程设计】
|
人工智能 开发框架 前端开发
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)
187 3