Не удалось подключиться к службе WCF на моем локальном хосте - PullRequest
0 голосов
/ 08 апреля 2019

При попытке подключиться к службе WCF, работающей на моем локальном хосте, с помощью инструмента тестового клиента WCF я получил следующую ошибку.Я ввел адрес конечной точки как «net.tcp: // localhost: 19998 / MyWCFService».MyWCFService запускается в Visual Studio 2017 на моем локальном ПК.

"Не было конечной точки, прослушивающей net.tcp: // localhost: 19998 / MyWCFService, которая могла бы принять сообщение. Это часто вызывается неправильным адресомили действие SOAP. См. InnerException, если имеется, для получения более подробной информации. "

Я могу убедиться, что порт 19998 прослушивает мой компьютер, используя netstat.

TCP 0.0.0.0:19998 LISTENING

Я отключил все брандмауэры на моем ПК.

Ответы [ 2 ]

1 голос
/ 09 апреля 2019

Оказывается, у моей службы WCF есть некоторые ошибки времени выполнения, которые запрещают подключаться к ней любым клиентам ... Я исправил ошибки и теперь могу подключиться. Спасибо.

0 голосов
/ 08 апреля 2019

Кажется, что ошибка вызвана тем, что адрес службы неверен. Как вы размещаете сервис на стороне сервера? Я хотел бы, чтобы вы опубликовали более подробную информацию о серверной части, чтобы дать вам эффективный ответ.
Вот мой пример использования NetTCPBinding, желаю, чтобы он был вам полезен.
Сервер

class Program
    {

        static void Main(string[] args)
        {

            Uri uri = new Uri("net.tcp://localhost:1500");
            NetTcpBinding binding = new NetTcpBinding();
            binding.Security.Mode = SecurityMode.None;
            using (ServiceHost sh = new ServiceHost(typeof(Calculator), uri))
            {
            sh.AddServiceEndpoint(typeof(ICalculator), binding,"");
            ServiceMetadataBehavior smb;
            smb = sh.Description.Behaviors.Find<ServiceMetadataBehavior>();
            if (smb == null)
            {
                smb = new ServiceMetadataBehavior();
                //smb.HttpGetEnabled = true;
                sh.Description.Behaviors.Add(smb);
            }
            Binding mexbinding = MetadataExchangeBindings.CreateMexTcpBinding();
            sh.AddServiceEndpoint(typeof(IMetadataExchange), mexbinding, "MEX");
            sh.Open();
            Console.Write("Service is ready....");
            Console.ReadLine();
            sh.Close();
            }
        }
    }
    [ServiceContract]
    public interface ICalculator
    {
        [OperationContract]
        int Test(int a);

    }
    public class Calculator : ICalculator
    {
        public int Test(int a)
        {
            return a * 2;
        }
    }

Результат.
enter image description here

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

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