我有一个Silverlight 4应用程序,它在浏览器之外运行,它还有一个Web服务,它与特定功能进行对话。
我正在尝试弄清楚如何检查网络服务是否可用,因为当互联网连接中断时应用程序崩溃。
答案 0 :(得分:4)
最简单的答案是向Web服务发出请求!你做的任何其他事情都会告诉你,你是否可以与某个特定主持人或其他人交谈,但这并不是你真正关心的事情......你关心的是你是否可以与那个特定的网络服务交谈。对于您的应用程序而言,正在关闭的Web服务相当于互联网停机。
找到一个廉价无害的请求,您可以将其作为测试呼叫,并使用它。当然,仅仅因为你有一个连接现在并不意味着你将在几分钟内拥有一个...所以你仍然应该确保你的应用程序实际上不会崩溃连接消失了。这应该是你的第一优先IMO:让它优雅地失败。
答案 1 :(得分:1)
我找到了以下解决方案
NetworkChange.NetworkAddressChanged += (sender, e) =>
{
if (NetworkInterface.GetIsNetworkAvailable())
{
// network available
}
else
{
// network is not available
}
}