Я создал серверные и клиентские приложения WCF. На стороне сервера мне нужно знать, когда приложение запущено.Доступность службы WCF
Я создал метод WCF и попытаться назвать это так:
var myEndpoint = new EndpointAddress(url); //I generate HTTP url to endpoint here
var myBinding = new WSHttpBinding { Security = { Mode = SecurityMode.None } };
var myChannelFactory = new ChannelFactory<IMycontract>(myBinding, myEndpoint);
ISqlExpressSyncContract client = null;
try
{
client = myChannelFactory.CreateChannel();
client.IsAvailable();
((ICommunicationObject)client).Close();
return true;
}
catch (Exception)
{
if (client != null)
{
((ICommunicationObject)client).Abort();
}
return false;
}
код работает, но тайм-аут слишком долго, когда он не доступен. Я попытался использовать UDP-открытие, например, предоставить здесь http://msdn.microsoft.com/en-us/magazine/ee335779.aspx. Но у него такая же проблема, когда клиент недоступен.
Какой лучший способ реализовать логику для быстрого пинга каждого клиента и проверить их статус доступности?