Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 63675|Antwoord: 8

[.NET Core] ASP.NET Core 3.1 Calling .NET 4.0 WCF Services tutorial

[Link kopiëren]
Geplaatst op 19-07-2020 22:18:08 | | | |
Bij het ontwikkelen van een nieuw project met asp.net kerntechnologie kan het oude project een WCF-dienst zijn die is ontwikkeld met het .NET Framework 4; omdat de reconstructiekosten te hoog zijn, is het noodzakelijk om asp.net kern te gebruiken om de WCF-serviceinterface aan te roepen.

Maak eerst twee nieuwe projecten aan:

ASP.NET Core 3.1 project: dotnet-core-call-wcf
.NET Framework 4 project (WCF serviceapplicatie): schools-wcf-service

Visual Studio 2019 wil een WCF-service maken, kan de sjabloonoplossing niet vinden, oplossing:

Selecteer Meer tools en functies installeren om Visual Studio Installer te openen. Selecteer het tabblad Individuele Componenten, scroll naar beneden naar Ontwikkelingsactiviteiten, selecteer Windows Communication Foundation en klik op Wijzigen.


WCF creëert twee interfaces als volgt:

De implementatiecode van de interface is als volgt:


Een servicecontract is een verzameling van gerelateerde serviceoperaties, en wanneer we een ServiceContractAttribuut op een interface toepassen, geven we het een servicecontractattribuut. Voor zo'n type wordt het idioom echter niet automatisch een contractuele service-operatie, en pas wanneer de OperationContractAttribut-functie wordt toegepast, kan het betreffende methodlid een service-operatie worden die via serviceoproep toegankelijk is.

Wanneer je het wcf-project start, draait het automatisch WcfTestClient en probeert het aan te roepen zoals weergegeven in de onderstaande figuur:



Gebruik ASP.NET kernprojecten om WCF-diensten te bellen

Klik met de rechtermuisknop op Connected Services, selecteer de service waaraan je een verbinding wilt toevoegen, en selecteer WCF-service, zoals weergegeven in de volgende afbeelding:



Dienstadres ingevuld: http://localhost:3705/Service1.svc

Mogelijke fouten:

WCF:Error:Unable to generate deps.json
https://www.itsvse.com/thread-9288-1-1.html

Aangezien het onmogelijk is om het WCF-serviceadres dood te schrijven, voeg de volgende code toe aan het appsettings.json bestand:

Bewerk het Startup.cs-bestand en registreer de WCF-dienst met de volgende code:

Roep de wcf-service op de HomeController-controller, eerste constructor-injectie, de code is als volgt:

Oproepen van de WCF-dienst:

Beheer de asp.net Core-website, het effect is als volgt weergegeven:



We proberen de WCF-service aan te passen zodat de interface na 3 minuten het resultaat teruggeeft, en vervolgens asp.net kern opnieuw starten om de WCF-dienst aan te roepen, en de foutmelding is als volgt:

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.)

Op dit moment moeten we de standaard timeout aanpassen, de BasicHttpBinding-binding aanpassen en het Startup.cs-bestand opnieuw bewerken, als volgt:



Broncode downloaden:

Toeristen, als jullie de verborgen inhoud van dit bericht willen zien, alsjeblieftAntwoord





Vorig:Hulp bij Windows-registercorruptie
Volgend:VS 2019 gebruikt svcutil.exe tools om het callbestand te genereren
Geplaatst op 15-09-2020 16:26:41 |
Leer het
Geplaatst op 11-05-2021 13:58:38 |
Er is een broncode-baas
Geplaatst op 18-06-2021 15:07:44 |
Gewoon om te zien
Geplaatst op 18-06-2021 15:08:38 |
De code kan niet worden bekeken
Geplaatst op 28-06-2021 10:58:22 |
Ik heb geen resultaten kunnen krijgen, wat is er aan de hand?
Geplaatst op 04-07-2021 10:21:09 |
Kom terug om van de goden te leren, bedankt voor het delen
Geplaatst op 03-08-2022 15:36:10 |
Dezelfde behoeften, kom en leer
Geplaatst op 02-12-2022 01:17:10 |
Leer van de goden
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com