当尝试使用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上的所有防火墙。
答案 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;
}
}
请随时告诉我是否有什么可以帮忙的。