Чтобы проверить доступность, вы можете попробовать подключиться к хосту через Socket Connection
вот так (его код vb.net 2.0 должен работать и в WCF)
Dim sckTemp As Socket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
sckTemp.ReceiveTimeout = 500 : sckTemp.SendTimeout = 500
Try
'' Connect using a timeout (1/2 second)
Dim result As IAsyncResult = sckTemp.BeginConnect("Host_ADDRESS", YOUR_SERVER_PORT_HERE, Nothing, Nothing)
Dim success As Boolean = result.AsyncWaitHandle.WaitOne(500, True)
If (Not success) Then
sckTemp.Close() : Return False
Else
Return True
End If
Catch ex As Exception
Return False
End Try
Это даст вам статус сервера через 1/2 секунды