Интеграция со службой SCF создает исключение EndpointNotFoundException - ASP .Net core 2.1 - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь интегрироваться с сервисом WCF из проекта .net standard 2.0 и получаю следующее исключение:

{System.ServiceModel.EndpointNotFoundException: There was no endpoint listening at https://X.svc that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.

Я проверил конечную точку, и она верна, и я попытался инициализировать привязку вручную:

var wsHttpBinding = new BasicHttpsBinding();
wsHttpBinding.TextEncoding = Encoding.Default;
wsHttpBinding.ReaderQuotas = XmlDictionaryReaderQuotas.Max;
wsHttpBinding.Security.Mode = BasicHttpsSecurityMode.Transport;
wsHttpBinding.ReceiveTimeout = TimeSpan.FromSeconds(10000);
wsHttpBinding.MaxBufferPoolSize = 50000000;
wsHttpBinding.MaxReceivedMessageSize = 50000000;
wsHttpBinding.ReaderQuotas.MaxStringContentLength = 50000000;
wsHttpBinding.ReaderQuotas.MaxArrayLength = 50000000;
wsHttpBinding.ReaderQuotas.MaxNameTableCharCount = 50000000;

Спасибо

1 Ответ

0 голосов
/ 06 ноября 2018

В общем, есть два способа вызова веб-службы в основном проекте Asp.net.

  1. Добавление ссылки на службу для вызова службы.
  2. Используйте Channel Factory для генерации экземпляра службы для вызова метода.

Какой бы метод мы ни использовали, нам нужно указать конечную точку службы, чтобы мы могли найти, где находится служба. Теперь последний проект NetCore использует инструмент провайдера веб-справки Microsoft WCF для добавления ссылки на службу, как в проекте NetFramework. enter image description here
Вот официальный документ на How-To.
https://docs.microsoft.com/en-us/dotnet/core/additional-tools/wcf-web-service-reference-guide
Github
https://github.com/dotnet/wcf/blob/master/release-notes/WCF-Web-Service-Reference-notes.md
В этом конкретном случае сгенерированный файл ConnectedService будет содержать конечную точку службы. enter image description here
Если мы используем использовать ChannelFactory для вызова службы. Вы можете обратиться к следующему коду.

Uri uri = new Uri("http://localhost:9001/service1.svc");
            BasicHttpBinding binding = new BasicHttpBinding();
            ChannelFactory<IService1> factory = new ChannelFactory<IService1>(binding, new EndpointAddress(uri));
            IService1 service = factory.CreateChannel();
            var result = service.GetData(100);

Не стесняйтесь, дайте мне знать, если я могу чем-нибудь помочь с

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...