Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 63675|Відповідь: 8

[.NET Core] ASP.NET Core 3.1 Виклик .NET 4.0 WCF Services tutorial

[Копіювати посилання]
Опубліковано 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. Виберіть вкладку «Окремі компоненти», прокрутіть вниз до «Розробки дій», виберіть Windows Communication Foundation і натисніть «Змінити».


WCF створює два інтерфейси наступним чином:

Код реалізації інтерфейсу виглядає так:


Сервісний контракт — це сукупність пов'язаних сервісних операцій, і коли ми застосовуємо ServiceContractAttribute до інтерфейсу, ми надаємо йому атрибут сервісного контракту. Однак для такого типу його ідіома не автоматично стає контрактною сервісною операцією, і лише при застосуванні функції OperationContractAttribute відповідний учасник методу може стати сервісною операцією, до якої можна отримати доступ через сервісний виклик.

Коли ви запускаєте проєкт 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 і повторно відредагувати 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 |
Я не можу отримати жодних результатів, що відбувається?
Опубліковано 04.07.2021 10:21:09 |
Повертайся, щоб вчитися у богів, дякую, що поділилися
Опубліковано 03.08.2022 15:36:10 |
Ті ж потреби — приходьте і вчіться
Опубліковано 02.12.2022 01:17:10 |
Вчися у богів
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com