.Net Core構建Webservice服務的實現(xiàn)步驟
這個題目聽起來怪怪的,畢竟既然都已經(jīng)用上.Net Core了,干脆直接用API好了,為什么還要使用老舊的WebService呢?但既然能有這個題目,說明背后肯定有一些讓人心酸的事情,比如說客戶要求?又或者說業(yè)務要求?領導要求?甚至是對接第三方的小工程師要求?總之,形勢比人強,我們還是來試試新瓶裝舊酒吧。
經(jīng)常用WebService的朋友們都知道,.Net Core是不能直接新建Webservice的,所以我們需要新建一個空的.Net Core模板,取名TestWebService。.Net 框架根據(jù)實際需要選擇,建議是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的完整代碼如圖所示。

點擊啟動項目,在瀏覽器中訪問 https://localhost:你的端口/MyService.asmx。出現(xiàn)下圖的內容,說明一個簡單的webService就制作完成了。

簡單觀察一下,發(fā)現(xiàn)綁定的是soap1.1協(xié)議。
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
但有的朋友實際用的是soap1.2協(xié)議。怎么辦呢?非常簡單,注冊終結點的時候設置一下版本就可以了。
app.UseEndpoints(endpoints => {
endpoints.UseSoapEndpoint<IMyWebService>("/MyService.asmx", new SoapEncoderOptions { MessageVersion = System.ServiceModel.Channels.MessageVersion.Soap12WSAddressing10 }, SoapSerializer.XmlSerializer);
});再次啟動刷新頁面,會發(fā)現(xiàn)綁定了1.2協(xié)議。
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/>
再隨便新建一個項目,添加服務引用,可以看到我們建的WebService終于被別人發(fā)現(xiàn)了,后續(xù)就可以將之前的業(yè)務挪過來啦~~

到此這篇關于.Net Core構建Webservice服務的實現(xiàn)步驟的文章就介紹到這了,更多相關.Net Core構建Webservice內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
ClickOnce DIY全自動更新下載升級的自我實現(xiàn)
ClickOnce DIY全自動更新下載升級的自我實現(xiàn)...2007-08-08
VisualStudio2019中為.NET Core WinForm App啟用窗體設計器
這篇文章主要介紹了VisualStudio2019中為.NET Core WinForm App啟用窗體設計器,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04
js實現(xiàn)網(wǎng)頁防止被iframe框架嵌套及幾種location.href的區(qū)別
首先我們了解一下幾種location.href的區(qū)別簡單的說:幾種location.href的區(qū)別js實現(xiàn)網(wǎng)頁被iframe框架功能,感興趣的朋友可以了解下2013-08-08
asp.net DataTable相關操作集錦(篩選,取前N條數(shù)據(jù),去重復行,獲取指定列數(shù)據(jù)等)
這篇文章主要介紹了asp.net DataTable相關操作,包括篩選,取前N條數(shù)據(jù),去重復行,獲取指定列數(shù)據(jù)等.基本涵蓋了DataTable的常見操作技巧,需要的朋友可以參考下2016-06-06

