Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 63675|Odpowiedź: 8

[.NET Core] ASP.NET Core 3.1 Calling .NET 4.0 Usługi WCF

[Skopiuj link]
Opublikowano 19.07.2020 22:18:08 | | | |
Podczas tworzenia nowego projektu, wykorzystując asp.net technologię rdzeniową, stary projekt może być usługą WCF opracowaną w .NET Framework 4, ponieważ koszt rekonstrukcji jest zbyt wysoki, konieczne jest użycie asp.net rdzenia do wywołania interfejsu usług WCF.

Po pierwsze, stwórz dwa nowe projekty:

ASP.NET Projekt Core 3.1: dotnet-core-call-wcf
.NET Framework 4 projekt (aplikacja WCF service): schools-wcf-service

Visual Studio 2019 chce utworzyć usługę WCF, nie mogę znaleźć szablonu, rozwiązanie:

Wybierz Zainstaluj więcej narzędzi i funkcji, aby otworzyć instalator Visual Studio. Wybierz zakładkę Indywidualne Komponenty, przewiń w dół do Aktywności Rozwojowe, wybierz Windows Communication Foundation i kliknij Zmodyfikuj.


WCF tworzy dwa interfejsy w następujący sposób:

Kod implementacyjny interfejsu wygląda następująco:


Kontrakt usługowy to zbiór powiązanych operacji usługowych, a gdy stosujemy ServiceContractAttribute na interfejsie, nadajemy mu atrybut kontraktu usługowego. Jednak dla takiego typu jego idiom nie staje się automatycznie operacją usługową kontraktową, a dopiero po zastosowaniu funkcji OperationContractAttribute odpowiedni członek metody może stać się operacją usługową, do której można uzyskać dostęp przez wywołanie serwisowe.

Po uruchomieniu projektu wcf automatycznie uruchomi WcfTestClient i spróbuje go wywołać, jak pokazano na poniższym rysunku:



Użyj ASP.NET projektów podstawowych do wywoływania usług WCF

Kliknij prawym przyciskiem Connected Services, wybierz usługę, do której chcesz dodać połączenie, i wybierz usługę WCF, jak pokazano na poniższym obrazku:



Adres serwisowy wypełniony: http://localhost:3705/Service1.svc

Możliwe błędy:

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

Ponieważ niemożliwe jest zapisanie adresu usługi WCF do końca, dodaj następujący kod do pliku appsettings.json:

Edytuj plik Startup.cs i zarejestruj usługę WCF z następującym kodem:

Wywołaj usługę wcf na kontrolerze HomeController, pierwsze wstrzyknięcie konstruktora, kod wygląda następująco:

Dzwonienie do usługi WCF:

Korzystaj ze strony asp.net Core, efekt jest przedstawiony poniżej:



Staramy się zmodyfikować usługę WCF tak, aby interfejs zwracał wynik po 3 minutach, a następnie restartujemy asp.net rdzeń, aby wywołać usługę WCF, i błąd jest następujący:

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

Obecnie musimy zmodyfikować domyślny timeout, dostosować binding BasicHttpBinding i ponownie edytować plik Startup.cs, w następujący sposób:



Pobranie kodu źródłowego:

Turyści, jeśli chcecie zobaczyć ukrytą zawartość tego wpisu, proszęOdpowiedź





Poprzedni:Pomoc w sprawie uszkodzenia rejestru Windows
Następny:VS 2019 wykorzystuje svcutil.exe narzędzia do generowania pliku wywołań
Opublikowano 15.09.2020 16:26:41 |
Naucz się go
Opublikowano 11.05.2021 13:58:38 |
Jest szef kodu źródłowego
Opublikowano 18.06.2021 15:07:44 |
Po prostu zobaczyć
Opublikowano 18.06.2021 15:08:38 |
Kod nie jest dostępny do przeglądu
Opublikowano 28.06.2021 10:58:22 |
Nie udało mi się uzyskać żadnych rezultatów, co się dzieje?
Opublikowano 04.07.2021 10:21:09 |
Wróć, by uczyć się od bogów, dziękuję za podzielenie się
Opublikowano 03.08.2022 15:36:10 |
Te same potrzeby, przyjdź i ucz się
Opublikowano 02.12.2022 01:17:10 |
Ucz się od bogów
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com