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