.Net Core构建Webservice服务的实现方式步骤实用指南
平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“.Net Core构建Webservice服务的实现方法步骤”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。
从实现思路看,这个题目听起来怪怪的,毕竟既然都已经用上.Net Core了,干脆直接用API好了,为什么还要采用老旧的WebService呢?但既然能有这个题目,说明背后肯定有一些让人心酸的事情,例如客户要求?又或者说业务要求?领导要求?甚至是对接第三方的小工程师要求?总之,形势比人强,我们还是来试试新瓶装旧酒吧。
落到代码里,经常用WebService的朋友们都知道,.Net Core是不能直接新建Webservice的,所以我们需新建一个空的.Net Core模板,取名TestWebService。.Net 框架根据实际需选择,建议是6.0以上,我这里选择的是8.0。
从实现思路看,建好项目后,在nuget控制台或者管理界面,为项目添加SoapCore引用。
新建一个IMyWebService.cs。
using System.ServiceModel;
namespace TestWebService
{
[ServiceContract]
public interface IMyWebService
{
[OperationContract] // 声明这是一个服务操作(方法)
string HelloWorld(string name);
}
}
新建一个MyWebService.cs。
namespace TestWebService
{
public class MyWebService : IMyWebService
{
public string HelloWorld(string name)
{
return $"Hello, {name}!";
}
}
}
修改Program.cs,在builder后面注册服务。
// 注册服务
builder.Services.AddSoapCore();
builder.Services.AddSingleton<IMyWebService, MyWebService>();
在app后面添加终结点。
app.UseRouting();
app.UseEndpoints(endpoints => {
endpoints.UseSoapEndpoint<IMyWebService>("/MyService.asmx", new SoapEncoderOptions(), SoapSerializer.XmlSerializer);
});
项目的结构和program.cs的完整代码如图所示。
落到代码里,点击启动项目,在浏览器中访问 (链接已移除)。出现下图的内容,说明一个轻松的webService就制作完成了。
轻松观察一下,发现绑定的是soap1.1协议。
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
从实现思路看,但有的朋友实际用的是soap1.2协议。怎么办呢?很轻松,注册终结点的时候设置一下版本就能够了。
app.UseEndpoints(endpoints => {
endpoints.UseSoapEndpoint<IMyWebService>("/MyService.asmx", new SoapEncoderOptions { MessageVersion = System.ServiceModel.Channels.MessageVersion.Soap12WSAddressing10 }, SoapSerializer.XmlSerializer);
});
再次启动刷新页面,会发现绑定了1.2协议。
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/>
在这个场景下,再随便新建一个项目,添加服务引用,能够看到我们建的WebService终于被别人发现了,后续就能够将之前的业务挪过来啦~~
到此这篇关于.Net Core构建Webservice服务的实现步骤的文章就介绍到这了,更多相关.Net Core构建Webservice内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多兼容脚本之家!
您可能感兴趣的文章:
- ASP.NET Core采用HttpClient调用WebService
- ASP.NET Core项目中调用WebService的方法
- Asp.NET Core 如何调用WebService的方法
-
09.07
git忽略CRLF警告完整指南
-
09.07
Android通过Dialog实现方式全屏的示例代码实用指南
-
09.07
Android开发(Kotlin) ViewModel基本用法示例完整指南
-
09.07
解决GitHub SSH连接超时问题及分析实用指南
-
09.07
Android开发教程之屏幕变更事件实用指南
-
09.07
从零开始讲解Android Studio打包WebView应用教程(附签名配置)实用指南
-
- Git单分支与多分支的协作流程实用指南
- 08.28
-
- 《明日方舟》贝洛内干员技能说明
- 08.27
-
- 幻世仙途法宝机制说明
- 08.27
-
- 《饼干人联盟》奶油苏打饼干说明
- 08.27
-
-
-
-
下载
- |
-
-
下载
- 《行尸走肉第一章》免安装中文汉化硬盘版下载
- 单机|436 MB
- 一款以动作冒险为主题的游戏
-
-
下载
- 《街头霸王X铁拳》免安装中文汉化硬盘版下载
- 单机|111MB
- 一款非常好玩的格斗游戏
-
-
下载
- |
-
-
下载
- 《暗黑破坏神3》免安装繁体中文正式版下载
- 单机|7630 MB
- 一款以角色扮演为主题的游戏
-
-
下载
- 《马克思佩恩3》免安装硬盘版下载
- 单机|27033 MB
- 一款以第三人称射击为主题的游戏