Egy új projekt fejlesztésekor asp.net magtechnológiával a régi projekt lehet WCF szolgáltatás, amelyet a .NET Framework 4-et használtak, mivel a rekonstrukció költsége túl magas, szükséges asp.net magot használni a WCF szolgáltatási interfész meghívásához.
Először is hozz létre két új projektet:
ASP.NET Core 3.1 projekt: dotnet-core-call-wcf .NET Framework 4 projekt (WCF szolgáltatás alkalmazás): iskolák-wcf-szolgáltatás
A Visual Studio 2019 WCF szolgáltatást szeretne létrehozni, nem találja a sablont, megoldást:
Válassza a Telepít több eszközt és funkciót a Visual Studio Installer megnyitásához. Válaszd ki az Egyéni Komponensek fület, görgess le a Fejlesztési tevékenységek részére, válaszd a Windows Kommunikációs Alapítványt, és kattints a Módosításra.
A WCF két interfészt hoz létre az alábbiak szerint:
Az interfész megvalósítási kódja a következő:
A szolgáltatási szerződés kapcsolódó szolgáltatási műveletek gyűjteménye, és amikor egy ServiceContractAttribute-t alkalmazunk egy interfészen, adunk neki egy szolgáltatási szerződés attribútumot. Azonban egy ilyen típus esetében az idiómája nem válik automatikusan szerződéses szolgáltatási műveletté, és csak akkor válik a megfelelő metódustag szolgáltatási műveletté, amely szolgáltatáshívással érhető el.
Amikor elindítod a wcf projektet, automatikusan fut a WcfTestClient-et, és megpróbálja hívni, ahogy az alábbi ábrán látható:
Használd ASP.NET Core projekteket WCF szolgáltatások hívására
Jobb kattintással a Connected Services menüpontra, válaszd ki a csatlakozást hozzáadni kívánt szolgáltatást, és a WCF szolgáltatást, ahogy az alábbi képen látható:
A szolgáltatási cím kitöltve: http://localhost:3705/Service1.svc
Lehetséges hibák:
Mivel lehetetlen a WCF szolgáltatási címet halálra írni, adjuk hozzá a következő kódot a appsettings.json fájlhoz:
Szerkesztse a Startup.cs fájlt, és regisztrálja a WCF szolgáltatást a következő kóddal:
Hívjuk a WCF szolgáltatást a HomeController vezérlőn, az első konstruktor befecskendezése, a kód a következő:
A WCF szolgáltatás hívása:
Futtasd a asp.net Core weboldalt, a hatás az alábbiak szerint van:
Megpróbáljuk módosítani a WCF szolgáltatást úgy, hogy az interfész 3 perc múlva visszaadja az eredményt, majd újraindítjuk asp.net magot, hogy hívjuk a WCF szolgáltatást, és a hiba a következő:
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.) Jelenleg módosítanunk kell az alapértelmezett időtúlzást, testreszabni a BasicHttpBinding kötést, és újra szerkeszteni a Startup.cs fájlt a következőképpen kell módosítani:
Forráskód letöltés:
Turisták, ha szeretnétek megnézni ennek a bejegyzésnek a rejtett tartalmát, kérlek Válasz
|