Kuriant naują projektą, naudojant asp.net pagrindinę technologiją, senasis projektas gali būti WCF paslauga, sukurta naudojant .NET Framework 4, nes rekonstrukcijos kaina yra per didelė, norint iškviesti WCF paslaugos sąsają, būtina naudoti asp.net branduolį.
Pirmiausia sukurkite naujus du projektus:
ASP.NET Core 3.1 projektas: dotnet-core-call-wcf .NET Framework 4 projektas (WCF paslaugos programa): schools-wcf-service
"Visual Studio 2019" nori sukurti WCF paslaugą, neranda šablono, sprendimas:
Pasirinkite Įdiegti daugiau įrankių ir funkcijų, kad atidarytumėte "Visual Studio" diegimo programą. Pasirinkite skirtuką Atskiri komponentai, slinkite žemyn iki Kūrimo veiklos, pasirinkite Windows Communication Foundation ir spustelėkite Modifikuoti.
WCF sukuria dvi sąsajas taip:
Sąsajos diegimo kodas yra toks:
Aptarnavimo sutartis yra susijusių aptarnavimo operacijų rinkinys, o kai sąsajai taikome ServiceContractAttribute, suteikiame jam aptarnavimo sutarties atributą. Tačiau tokio tipo idioma automatiškai netampa sutartine paslaugos operacija ir tik pritaikius funkciją OperationContractAttribute atitinkamas metodo narys gali tapti aptarnavimo operacija, kurią galima pasiekti iškviečiant tarnybą.
Kai paleisite wcf projektą, jis automatiškai paleis WcfTestClient ir bandys jį iškviesti, kaip parodyta paveikslėlyje žemiau:
Naudokite ASP.NET pagrindinius projektus WCF tarnyboms iškviesti
Dešiniuoju pelės mygtuku spustelėkite Prijungtos tarnybos, pasirinkite tarnybą, prie kurios norite įtraukti ryšį, ir pasirinkite WCF tarnyba, kaip parodyta šiame paveikslėlyje:
Užpildytas aptarnavimo adresas: http://localhost:3705/Service1.svc
Galimos klaidos:
Kadangi neįmanoma parašyti WCF paslaugos adreso iki mirties, pridėkite šį kodą į appsettings.json failą:
Redaguokite Startup.cs failą ir užregistruokite WCF paslaugą naudodami šį kodą:
Skambinkite į wcf tarnybą "HomeController" valdiklyje, pirmasis konstruktoriaus įpurškimas, kodas yra toks:
Skambinimas į WCF tarnybą:
Paleiskite asp.net Core svetainę, poveikis yra toks, kaip parodyta toliau:
Mes bandome modifikuoti WCF paslaugą taip, kad sąsaja grąžintų rezultatą po 3 minučių, tada iš naujo paleiskite asp.net branduolį, kad iškviestumėte WCF paslaugą, o klaida yra tokia:
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.) Šiuo metu turime pakeisti numatytąjį skirtąjį laiką, tinkinti BasicHttpBinding susiejimą ir iš naujo redaguoti Startup.cs failą taip:
Šaltinio kodo atsisiuntimas:
Turistai, jei norite pamatyti paslėptą šio įrašo turinį, prašome Atsakyti
|