Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 63675|Ответ: 8

[.NET Core] ASP.NET Core 3.1 Вызов .NET 4.0 WCF Services

[Скопировать ссылку]
Опубликовано 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 1:17:10 |
Учитесь у богов
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com