我添加了以下功能来自动发现内网中的WCF服务。
private void AutoDiscovery(FindCriteria cirteria)
{
try
{
UdpDiscoveryEndpoint udp = new UdpDiscoveryEndpoint();
using (DiscoveryClient discoveryClient = new DiscoveryClient(udp))
{
cirteria.Duration = TimeSpan.FromSeconds(5);
FindResponse response = discoveryClient.Find(cirteria);
if (response.Endpoints.Count > 0)
{
foreach (EndpointDiscoveryMetadata point in response.Endpoints)
{
string address = point.Address.Uri.ToString();
// net.tcp//computer1:8081/wcfService
}
}
}
}
catch(Exception e)
{
}
}
测试时,返回地址为net.tcp//computer1:8081/wcfService。虽然我可以使用它Dns.GetHostAddress来获取IP地址,但由于DNS问题,在本地内网中需要很长时间。
有没有办法在发现过程中直接获取IP地址?
富国沪深
相关分类