Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 63675|Отговор: 8

[.NET Core] ASP.NET Core 3.1 Обаждане .NET 4.0 WCF услуги урок

[Копирай линк]
Публикувано в 19.07.2020 г. 22:18:08 ч. | | | |
При разработване на нов проект, използвайки asp.net основна технология, старият проект може да бъде WCF услуга, разработена с .NET Framework 4, тъй като разходите за реконструкция са твърде високи, е необходимо да се използва ядрото asp.net за извикване на интерфейса на услугата WCF.

Първо, създайте нови два проекта:

ASP.NET Core 3.1 проект: dotnet-core-call-wcf
Проект .NET Framework 4 (приложение на WCF услуга): schools-wcf-service

Visual Studio 2019 иска да създаде WCF услуга, не може да намери шаблона, решението:

Изберете Инсталиране на още инструменти и функции, за да отворите Visual Studio Installer. Изберете раздела Отделни компоненти, превъртете надолу до Development Activities, изберете Windows Communication Foundation и натиснете Modify.


WCF създава два интерфейса по следния начин:

Кодът за реализация на интерфейса е следният:


Договорът за услуга е колекция от свързани операции на услугата, и когато приложим ServiceContractAttribute върху интерфейс, му даваме атрибут за договор за услуги. Въпреки това, за такъв тип неговият идиом не се превръща автоматично в договорна обслужваща операция и само когато се приложи функцията OperationContractAttribute, съответният член на метода може да се превърне в сервизна операция, достъпна чрез service call.

Когато стартирате проекта wcf, той автоматично ще стартира WcfTestClient и ще се опита да го извика, както е показано на фигурата по-долу:



Използвайте ASP.NET Core проекти, за да се обадите на WCF услуги

Кликнете с десен бутон върху Свързани услуги, изберете услугата, към която искате да добавите връзка, и изберете WCF услуга, както е показано на следното изображение:



Попълнен адрес на услугата: http://localhost:3705/Service1.svc

Възможни грешки:

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

Тъй като е невъзможно да се запише адресът на услугата WCF до край, добавете следния код към appsettings.json файла:

Редактирайте Startup.cs файла и регистрирайте услугата WCF със следния код:

Извикай услугата wcf на контролера HomeController, първата инжекция на конструктор, кодът е следният:

Обаждане на услугата WCF:

Стартирайте уебсайта на asp.net Core, ефектът е както е показано по-долу:



Опитваме се да модифицираме WCF услугата така, че интерфейсът да връща резултата след 3 минути, след което рестартираме asp.net ядрото, за да извикаме WCF услугата, и грешката е следната:

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

В момента трябва да променим стандартния таймаут, да персонализираме BasicHttpBinding binding и да редактираме отново Startup.cs файла, както следва:



Изтегляне на изходния код:

Туристи, ако искате да видите скритото съдържание на този пост, моляОтговор





Предишен:Помощ за повреда на регистъра на Windows
Следващ:VS 2019 използва svcutil.exe инструменти за генериране на файла за повикване
Публикувано в 15.09.2020 г. 16:26:41 ч. |
Научи го
Публикувано в 11.05.2021 г. 13:58:38 ч. |
Има бос на изходния код
Публикувано в 18.06.2021 г. 15:07:44 ч. |
Само за да видя
Публикувано в 18.06.2021 г. 15:08:38 ч. |
Кодът не може да бъде прегледан
Публикувано в 28.06.2021 г. 10:58:22 ч. |
Не успях да получа никакви резултати, какво става?
Публикувано в 4.07.2021 г. 10:21:09 ч. |
Върни се, за да учиш от боговете, благодаря, че сподели
Публикувано в 3.08.2022 г. 15:36:10 ч. |
Същите нужди, ела и учи
Публикувано в 2.12.2022 г. 1:17:10 ч. |
Учи се от боговете
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com