Здесь вы можете попробовать два варианта, кроме подключаемых служб.
Варианты 1 - попробуйте использовать WSDL с метаданными, аналогичными метаданным модели службы, используя do tnet -svcutil. Это инструмент командной строки для создания ссылок на веб-службы для. NET Core и. NET Standard. Ссылка для do tnet -svcutil
Вариант 2. Использование фабрики каналов для использования службы WCF. Недостатком этого варианта является то, что вы должны знать определение контракта службы WCF, которую вы хотите использовать. Я создал небольшую службу WCF и опробовал ее, это был менее проблемный метод.
Я определил известный контракт WCF в проекте ASP. NET Core MVC, как показано ниже,
using System.ServiceModel;
namespace AspNet_Core_Wcf_Client.Contracts
{
[ServiceContract]
public interface IOrderService
{
[OperationContract]
int GetOrdersCount();
}
}
Этот контракт также определен в моем WCF.
Затем потребляется эта служба из контроллера, как показано ниже.
using AspNet_Core_Wcf_Client.Contracts;
using Microsoft.AspNetCore.Mvc;
using System.ServiceModel;
namespace AspNet_Core_Wcf_Client.Controllers
{
public class OrderController : Controller
{
public IActionResult Index()
{
// create binding object
BasicHttpBinding binding = new BasicHttpBinding();
// create endpoint object
EndpointAddress endpoint = new EndpointAddress("http://localhost:64307/OrderService.svc");
// create channel object with contract
ChannelFactory<IOrderService> channelFactory = new ChannelFactory<IOrderService>(binding, endpoint);
// Create a channel
IOrderService client = channelFactory.CreateChannel();
int result = client.GetOrdersCount();
ViewBag.Count = result;
return View();
}
}
}
Для успешного использования метода фабрики каналов необходимо установить ServiceModel из пакетов-слепков.