webapi创建WCF WebService+WCF WebService远程服务调用
首先需要引入soapcore包

这个包提供了所需的类和soap终结点中间件。
引入这个这个包之后,我们需要定义提供的服务。
这里我写了一个用于查询省份面积的服务。
省份信息服务
/// <summary>
/// 省份信息服务接口
/// </summary>
[ServiceContract]
public interface IProvinceInfoService
{
/// <summary>
/// 获取省份面积
/// </summary>
/// <param name="provinceName"></param>
/// <returns></returns>
[OperationContract]
ProvinceResult GetProvinceInfo(string provinceName);
}
/// <summary>
/// 省份信息服务实现
/// </summary>
public class ProvinceInfoService : IProvinceInfoService
{
public ProvinceResult GetProvinceInfo(string provinceName)
{
if (string.IsNullOrEmpty(provinceName))
{
return new ProvinceResult();
}
else
{
switch (provinceName)
{
case "四川":
return new ProvinceResult() { Name= provinceName,Area=48.14m };
case "新疆":
return new ProvinceResult() { Name = provinceName, Area = 166 };
default:
return new ProvinceResult() { Name = provinceName};
}
}
}
}
/// <summary>
/// 实体类
/// </summary>
[DataContract]
public class ProvinceResult
{
[DataMember]
public string Name { get; set; }
[DataMember]
public decimal Area { get; set; }
}
定义服务之后在web主机中注册服务
//添加webService服务
builder.Services.AddSingleton<IProvinceInfoService, ProvinceInfoService>();
//添加webservice服务终结点,当请求的资源在控制器中路由不到时会路由到这里
app.UseSoapEndpoint<IProvinceInfoService>("/ProvinceInfoService", new SoapEncoderOptions());
现在WebService就创建好了,实在是很简单。只是soapcore没有提供测试页面,而netFramework用.asmx写的服务不加后面的路径时,返回的是一个HTML测试页面,很方便。soapcore就没有搞这个了,默认是返回WSDL文件。
测试服务
WSDL文件测试

服务方法测试

添加WebService服务引用
为了方便测试,我把项目发布了一下,然后把发布了的项目exe运行了起来。在解决方案中再添加正在运行的项目里面那个WebService。
有两种方法添加服务引用
- 第一种是在项目上右键选择添加->服务引用,选择WCF那一项

- 第二种方式是双击项目下面的Connected Service,然后选择连接的服务,在服务引用那一栏点+号。仍然会弹出同样的界面
选择下一步后,出现弹窗

- 填上服务的地址后点击转到。
- 点击浏览,选择别人给的WSDL文件
这两种方式都可以
然后可以改一下自己认为合适的命名空间,我改为了ProvinceServiceReference
然后一路下一步就行
使用WebService
使用方式和普通的实例方法调用一样,我把它写到控制器Action中
[HttpGet]
[AllowAnonymous]
public async Task<object> GetProvinceService(string provinceName)
{
ProvinceInfoServiceClient client = new ProvinceInfoServiceClient();
return await client.GetProvinceInfoAsync(provinceName);
}
测试

webapi创建WCF WebService+WCF WebService远程服务调用的更多相关文章
- Webservice WCF WebApi 前端数据可视化 前端数据可视化 C# asp.net PhoneGap html5 C# Where 网站分布式开发简介 EntityFramework Core依赖注入上下文方式不同造成内存泄漏了解一下? SQL Server之深入理解STUFF 你必须知道的EntityFramework 6.x和EntityFramework Cor
Webservice WCF WebApi 注明:改编加组合 在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API.在.net平台下, ...
- 关于通信的关键词UDP/(TCP/IP)/IPC/RPC/.NET Remoting/WebService/WCF/Http 系列
OSI七层和TCP/IP四层的关系 1.1 OSI引入了服务.接口.协议.分层的概念,TCP/IP借鉴了OSI的这些概念建立TCP/IP模型. 1.2 OSI先有模型,后有协议,先有标准,后进行实践: ...
- .Net remoting, Webservice,WCF,Socket区别
传统上,我们把计算机后台程序(Daemon)提供的功能,称为"服务"(service).比如,让一个杀毒软件在后台运行,它会自动监控系统,那么这种自动监控就是一个"服务& ...
- WCF常见问题(1) -- WebService/WCF Session Cookie
原文:WCF常见问题(1) -- WebService/WCF Session Cookie 在.net 3.0推出WCF之前使用的WebService,有的应用有使用Session保持一些信息,在不 ...
- 使用vs2010创建、发布、部署、调用 WebService
原文地址:使用vs2010创建.发布.部署.调用 WebService作者:吴超 一 使用vs2010创建 WebService 1 打开VS2010,菜单 文件->新建->项目2 ...
- 如何创建一个AJAX-Enabled WCF Service
原创地址:http://www.cnblogs.com/jfzhu/p/4041638.html 转载请注明出处 前面的文章中介绍过<Step by Step 创建一个WCF Servi ...
- WebService学习总结(四)——调用第三方提供的webService服务
http://www.cnblogs.com/xdp-gacl/p/4260627.html 互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他 ...
- CXF发布webService服务以及客户端调用
这篇随笔内容是CXF发布webService服务以及客户端调用的方法 CXF是什么? 开发工作之前需要下载CXF和安装 下载地址:http://cxf.apache.org 安装过程: <1&g ...
- WCF学习系列一_创建第一个WCF服务
原创作者:灰灰虫的家http://hi.baidu.com/grayworm WCF开发实战系列一:创建第一个WCF服务 在这个实战中我们将使用DataContract,ServiceContract ...
- [置顶]
Java WebService接口生成和调用 图文详解
webservice简介: Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的.专门的第三方软件或硬件, 就可相互交换数据或集成.依据Web Service规范实施的应用之间 ...
随机推荐
- 玩转OpenHarmony智能家居:如何实现树莓派“碰一碰”设备控制
一.简介 "碰一碰"设备控制,依托NFC短距通信协议,通过碰一碰的交互方式,将OpenAtom OpenHarmony(简称"OpenHarmony")标准系统 ...
- C 语言结构体和枚举完全指南:成员访问、字符串操作、枚举基础
访问结构体成员 要访问结构体的成员,请使用点语法 (.): // 创建名为 myStructure 的结构体 struct MyStructure { int myNum; char myLetter ...
- 三步配置阿里巴巴durid监控
三步配置阿里巴巴durid监控 官方文档 环境:jdk17, 框架springboot3 引入依赖 <properties> <druid>1.2.21</druid&g ...
- 【编译原理】Antlr 入门使用
前面文章我们学习了编译器前端的词法和语法分析工具,本篇我们来看看如何借助 Antlr 工具,快速生成词法和语法分析代码. 一.安装 mac 环境: 1)安装 brew install antlr 2) ...
- oracle database recover database (下篇)
1. recover database 恢复级别一共三个:recover database > recover tablespace > recover datafile ,最高级别 da ...
- orleans —————— 为什么有这个框架 [ 一]
前言 简单说明一下,为什么有orleans 这个框架. 正文 orleans 这个框架的理论基础是 actor, 在1973年提出,当初是为了大量处理高并发计算机的并行模型,其核心思想是将系统中独立的 ...
- docker 应用篇————docker安装[二]
前言 这其实是去年的一篇blog,忘了写了.本来我想先发一下理论的,但是水平.... 正文 如果你不熟悉linux,而是使用windows,那么你可以这样下载windows桌面版或者说你在这之前完全不 ...
- 重新整理.net core 计1400篇[三] (.net core 如何源代码调试和查看源码 )
前言 本来这里是写源代码的,因为vs没有那么容易调试查看到源代码,所以先把调试源代码和查看源代码弄完. 正文 需要修改一些vs配置,这个vs也是有要求的,要vs2017. 那么你还需要加载远程符号. ...
- dotnet 世界猜测 随机数的小测试
这是一个半技术向的博客,主题来源于我读过的某本书的片段,这是一个稍稍有些前置知识的故事,主题的大概内容就是假定世界存在某个规则序列,通过一代代的探索,可以获取到此序列的内容.本文将模拟此情形,写一个随 ...
- docker-compose安装EFK
一.环境 IP 系统 配置 版本 192.168.10.100 Centos7.9 2核4G Docker Compose version v2.19.1.EFK-7.17.11 EFK版本是试用版本 ...