日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

.NET Core开发日志——WCF Client

發(fā)布時(shí)間:2023/12/4 asp.net 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET Core开发日志——WCF Client 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

WCF作為.NET Framework3.0就被引入的用于構(gòu)建面向服務(wù)的框架在眾多項(xiàng)目中發(fā)揮著重大作用。時(shí)至今日,雖然已有更新的技術(shù)可以替代它,但對(duì)于那些既存項(xiàng)目或產(chǎn)品,使用新框架重構(gòu)的代價(jià)未必能找到人愿意買單。

而在.NET Core平臺(tái)環(huán)境中,WCF也并沒(méi)有被完全列入遷移目標(biāo)。WCF的服務(wù)端被擱置一旁,只有客戶端已被移植入.NET Core之中。

這意味著,如果有需求在.NET Core中,尤其是非Windows系統(tǒng)環(huán)境,調(diào)用現(xiàn)有的WCF服務(wù),也并非一件不可能的事情。

以一個(gè)實(shí)驗(yàn)來(lái)證明,先建一個(gè)解決方案工程,再加入兩個(gè)類庫(kù)項(xiàng)目及一個(gè)控制臺(tái)應(yīng)用程序。

WcfService.Contract項(xiàng)目,這是WCF服務(wù)的接口,即服務(wù)契約。

以上三個(gè)項(xiàng)目皆使用.NET framework 4.5.2作為目標(biāo)框架。

通過(guò)運(yùn)行WcfService.Host應(yīng)用程序,可以將WCF服務(wù)端啟動(dòng)起來(lái)。當(dāng)然此服務(wù)端只能運(yùn)行在Windows系統(tǒng)環(huán)境之上。(為了實(shí)驗(yàn),建議將系統(tǒng)的防火墻暫時(shí)關(guān)閉,以免無(wú)法連通)

再找一個(gè)非Windows系統(tǒng)的環(huán)境,比如我使用的Mac Air。再創(chuàng)建一個(gè)控制臺(tái)應(yīng)用程序。

dotnet new console -o WcfClientApp

用Visual Studio Code打開(kāi)工程,建議安裝Nuget Package Manager插件,因?yàn)檫@里需要引入System.ServiceModel.Http類庫(kù)。

使用快捷鍵Ctrl(Command)+p,輸入>nuget,選中Nuget Package Manager: Add Package,輸入System.ServiceModel.Http,再選取最新版本的安裝選項(xiàng),對(duì)應(yīng)的類庫(kù)便會(huì)自動(dòng)下載下來(lái)。

除了這個(gè)類庫(kù)之外,還需要使用之前創(chuàng)建的WcfService.Contract的dll文件。將其復(fù)制到某個(gè)目錄下,并在csproj文件指明其具體位置即可。

<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><OutputType>Exe</OutputType><TargetFramework>netcoreapp2.1</TargetFramework></PropertyGroup><ItemGroup><PackageReference Include="System.ServiceModel.Http" Version="4.5.3"/></ItemGroup><ItemGroup><Reference Include="WcfService.Contract"><HintPath>bin\Debug\netcoreapp2.1\WcfService.Contract.dll</HintPath></Reference></ItemGroup></Project>

WCF客戶端的代碼如下:

將此客戶端運(yùn)行起來(lái),可以看到這個(gè)實(shí)驗(yàn)成功了。

當(dāng)然WCF Client在.NET Core上的使用一定是有限制,其僅支持HTTP與TCP兩種通信協(xié)議,如NamedPipe(命名管道),MSMQ這種Windows平臺(tái)特有的通信協(xié)議,肯定是不被支持的。不過(guò)一般最常用的也就是這兩種,所以大多數(shù)應(yīng)用場(chǎng)景下也是夠用了。

上面提到了WCF服務(wù)端不被.NET Core所支持,但如果只是想建一個(gè)SOAP的服務(wù),還是有解決方案的。

同樣是在macOS系統(tǒng)上,新建一個(gè)Web應(yīng)用程序。

dotnet new web -o SOAPApp

通過(guò)Nuget Package Manager安裝SoapCore類庫(kù),并將WcfService.dll與WcfService.Contract.dll一并引入。

<Project Sdk="Microsoft.NET.Sdk.Web"><PropertyGroup><TargetFramework>netcoreapp2.1</TargetFramework></PropertyGroup><ItemGroup><Folder Include="wwwroot\"/></ItemGroup><ItemGroup><PackageReference Include="Microsoft.AspNetCore.App"/><PackageReference Include="SoapCore" Version="0.9.8.1"/></ItemGroup><ItemGroup><Reference Include="WcfService"><HintPath>bin\Debug\netcoreapp2.1\WcfService.dll</HintPath></Reference><Reference Include="WcfService.Contract"><HintPath>bin\Debug\netcoreapp2.1\WcfService.Contract.dll</HintPath></Reference></ItemGroup></Project>

然后在Startup文件中注入所需的服務(wù),并增加SOAP服務(wù)的端點(diǎn)。

運(yùn)行此Web應(yīng)用程序,注意將默認(rèn)的local地址改成實(shí)際的Url。

再在Windows系統(tǒng)環(huán)境下建立一個(gè)控制臺(tái)應(yīng)用程序作為客戶端用于檢測(cè)。

運(yùn)行結(jié)果,同樣正常,這次的的嘗試完美結(jié)尾。

相關(guān)文章:

  • .Net Core開(kāi)發(fā)日志——Global Tools

  • .Net Core開(kāi)發(fā)日志——Peachpie

  • .NET Core開(kāi)發(fā)日志——Middleware

  • .Net Core Cors中間件解析

  • .NET Core開(kāi)發(fā)日志——Runtime IDentifier

  • .NET Core開(kāi)發(fā)日志——HttpClientFactory

  • .NET Core開(kāi)發(fā)日志——從ASP.NET Core Module到KestrelServer

原文地址:https://www.cnblogs.com/kenwoo/p/9362763.html

.NET社區(qū)新聞,深度好文,歡迎訪問(wèn)公眾號(hào)文章匯總 http://www.csharpkit.com

總結(jié)

以上是生活随笔為你收集整理的.NET Core开发日志——WCF Client的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。