Izstrādājot jaunu projektu, izmantojot asp.net pamattehnoloģiju, vecais projekts var būt WCF pakalpojums, kas izstrādāts, izmantojot .NET Framework 4, jo rekonstrukcijas izmaksas ir pārāk augstas, ir nepieciešams izmantot asp.net kodolu, lai izsauktu WCF pakalpojuma saskarni.
Vispirms izveidojiet divus jaunus projektus:
ASP.NET Core 3.1 projekts: dotnet-core-call-wcf .NET Framework 4 projekts (WCF pakalpojuma lietojumprogramma): schools-wcf-service
Visual Studio 2019 vēlas izveidot WCF pakalpojumu, nevar atrast veidni, risinājumu:
Atlasiet Instalēt citus rīkus un līdzekļus, lai atvērtu Visual Studio Installer. Atlasiet cilni Atsevišķi komponenti, ritiniet uz leju līdz Izstrādes darbības, atlasiet Windows Communication Foundation un noklikšķiniet uz Modificēt.
WCF izveido divas saskarnes šādi:
Saskarnes ieviešanas kods ir šāds:
Pakalpojumu līgums ir saistītu pakalpojumu operāciju kopums, un, lietojot interfeisā ServiceContractAttribute, mēs tam piešķiram pakalpojuma līguma atribūtu. Tomēr šādam tipam tā idioma automātiski nekļūst par līguma pakalpojuma operāciju, un tikai tad, ja tiek lietots līdzeklis OperationContractAttribute, atbilstošais metodes dalībnieks var kļūt par pakalpojuma operāciju, kurai var piekļūt ar pakalpojuma izsaukumu.
Sākot wcf projektu, tas automātiski palaiž WcfTestClient un mēģinās to izsaukt, kā parādīts zemāk redzamajā attēlā:
ASP.NET Core projektu izmantošana, lai izsauktu WCF pakalpojumus
Ar peles labo pogu noklikšķiniet uz Savienotie pakalpojumi, atlasiet pakalpojumu, kuram vēlaties pievienot savienojumu, un atlasiet WCF pakalpojums, kā parādīts šajā attēlā:
Aizpildītā pakalpojuma adrese: http://localhost:3705/Service1.svc
Iespējamās kļūdas:
Tā kā nav iespējams uzrakstīt WCF pakalpojuma adresi līdz nāvei, appsettings.json failam pievienojiet šādu kodu:
Rediģējiet Startup.cs failu un reģistrējiet WCF pakalpojumu ar šādu kodu:
Zvaniet uz wcf pakalpojumu HomeController kontrolierī, pirmā konstruktora injekcija, kods ir šāds:
Zvanīšana uz WCF dienestu:
Palaidiet asp.net Core vietni, efekts ir šāds:
Mēs cenšamies modificēt WCF pakalpojumu tā, lai saskarne atgrieztu rezultātu pēc 3 minūtēm, un pēc tam restartējiet asp.net kodolu, lai izsauktu WCF pakalpojumu, un kļūda ir šāda:
AggregateException: One or more errors occurred. (The request channel timed out attempting to send after 00:01:00. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a portion of a longer timeout.) Šobrīd mums ir jāmaina noklusējuma taimauts, jāpielāgo BasicHttpBinding saistīšana un atkārtoti jārediģē Startup.cs fails šādi:
Avota koda lejupielāde:
Tūristi, ja vēlaties redzēt šīs ziņas slēpto saturu, lūdzu Atbildi
|