无法连接到本地主机上的WCF服务

时间:2019-04-08 02:44:54

标签: wcf connect

当尝试使用WCF测试客户端工具连接到在本地主机上运行的WCF服务时,出现以下错误。我将端点地址输入为“ net.tcp:// localhost:19998 / MyWCFService”。 MyWCFService在我的本地PC上的Visual Studio 2017中启动。

“ net.tcp:// localhost:19998 / MyWCFService上没有端点在监听 可以接受该消息。这通常是由不正确的地址或SOAP操作引起的。有关更多详细信息,请参见InnerException(如果存在)。

我可以使用netstat验证端口19998在我的PC上进行监听。

TCP 0.0.0.0:19998侦听

我已禁用PC上的所有防火墙。

2 个答案:

答案 0 :(得分:1)

事实证明,我的WCF服务存在一些运行时错误,禁止任何客户端连接到它。我已修复错误,现在可以连接。谢谢。

答案 1 :(得分:0)

该错误似乎是由于服务地址错误引起的。您如何在服务器端托管服务?我希望您可以发布有关服务器端的更多详细信息,以便给您有效的答复。
这是我有关使用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

请随时告诉我是否有什么可以帮忙的。