Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 63675|Răspunde: 8

[.NET Core] ASP.NET Core 3.1 Tutorial pentru apelarea serviciilor WCF din .NET 4.0

[Copiază linkul]
Postat pe 19.07.2020 22:18:08 | | | |
Când se dezvoltă un proiect nou, folosind tehnologia asp.net de bază, vechiul proiect poate fi un serviciu WCF dezvoltat folosind .NET Framework 4, deoarece costul de reconstrucție este prea mare, fiind necesar să se folosească asp.net nucleu pentru a apela interfața serviciului WCF.

În primul rând, creează două proiecte noi:

ASP.NET Proiectul Core 3.1: dotnet-core-call-wcf
Proiectul .NET Framework 4 (aplicație de serviciu WCF): schools-wcf-service

Visual Studio 2019 vrea să creeze un serviciu WCF, nu găsesc șablonul, soluție:

Selectează Instalează mai multe unelte și funcții pentru a deschide Visual Studio Installer. Selectează fila Componente Individuale, derulează în jos până la Activități de Dezvoltare, selectează Fundația de Comunicare Windows și apasă pe Modificare.


WCF creează două interfețe după cum urmează:

Codul de implementare al interfeței este următorul:


Un contract de serviciu este o colecție de operațiuni de servicii conexe, iar când aplicăm un ServiceContractAttribute pe o interfață, îi atribuim un atribut de contract de servicii. Totuși, pentru un astfel de tip, idiomul său nu devine automat o operație contractuală de serviciu, iar doar atunci când funcția OperationContractAttribute este aplicată poate fi membrul corespunzător al metodei să devină o operațiune de serviciu accesibilă prin apel de serviciu.

Când începi proiectul wcf, acesta va rula automat WcfTestClient și va încerca să-l cheme, așa cum se arată în figura de mai jos:



Folosiți proiectele ASP.NET Core pentru a chema servicii WCF

Faceți clic dreapta pe Servicii conectate, selectați serviciul la care doriți să adăugați o conexiune și selectați serviciul WCF, așa cum se arată în imaginea următoare:



Adresa serviciului ocupată: http://localhost:3705/Service1.svc

Posibile erori:

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

Deoarece este imposibil să scrii adresa serviciului WCF până la moarte, adaugă următorul cod în fișierul appsettings.json:

Editați fișierul Startup.cs și înregistrați serviciul WCF cu următorul cod:

Sună serviciul wcf pe controlerul HomeController, prima injecție a constructorului, codul este următorul:

Apelarea serviciului WCF:

Rulează site-ul asp.net Core, efectul este prezentat mai jos:



Încercăm să modificăm serviciul WCF astfel încât interfața să returneze rezultatul după 3 minute, apoi repornim nucleul asp.net pentru a chema serviciul WCF, iar eroarea este următoarea:

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

În acest moment, trebuie să modificăm timeout-ul implicit, să personalizăm legarea BasicHttpBinding și să reedităm fișierul Startup.cs, după cum urmează:



Descărcare cod sursă:

Turiști, dacă vreți să vedeți conținutul ascuns al acestei postări, vă rogRăspunde





Precedent:Ajutor cu corupția registrului Windows
Următor:VS 2019 folosește svcutil.exe unelte pentru a genera fișierul de apel
Postat pe 15.09.2020 16:26:41 |
Învață-l
Postat pe 11.05.2021 13:58:38 |
Există un șef cod sursă
Postat pe 18.06.2021 15:07:44 |
Doar ca să văd
Postat pe 18.06.2021 15:08:38 |
Codul nu poate fi vizualizat
Postat pe 28.06.2021 10:58:22 |
Nu am reușit să obțin niciun rezultat, ce se întâmplă?
Postat pe 04.07.2021 10:21:09 |
Întoarceți-vă să învățați de la zei, vă mulțumesc că ați împărtășit
Postat pe 03.08.2022 15:36:10 |
Aceleași nevoi, vino și învață
Postat pe 02.12.2022 01:17:10 |
Învață de la zei
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com