【发布时间】:2019-12-03 12:13:20
【问题描述】:
我有使用服务发现的客户端/服务器应用程序:
服务器:
using (ServiceHost host = new ServiceHost(Instance, baseAddress))
{
try
{
host.Description.Behaviors.Add(new ServiceDiscoveryBehavior());
host.AddServiceEndpoint(new UdpDiscoveryEndpoint());
...
host.Open();
while (!Program.IsExit && !cancel)
{
Thread.Sleep(50);
}
host.Close();
}
catch (Exception ex)
{
....
}
发现服务:
DiscoveryClient discoveryClient = new DiscoveryClient(new UdpDiscoveryEndpoint());
var services = discoveryClient.Find(new FindCriteria(typeof(IUpdateServerService)));
discoveryClient.Close();
在本地机器上这工作正常。找到服务。另一方面,当有人在其他机器上运行客户端时,似乎找不到服务(客户端应该在服务器上注册自己,但它没有)。
有什么问题吗?我渴望的想法是 UDP 流量可以被防火墙阻止。我怎样才能改变它不使用UDP?所有客户端和服务器都在同一个域中。
【问题讨论】:
标签: wcf service-discovery