我似乎在使用ApplicationDeployment.CheckForUpdateAsync方法时遇到了一个奇怪的问题。目前,我有一个定时器,它以预定的时间间隔检查服务器的更新。这样做的原因是,我们需要确保每个人都在使用最新的版本,并且当有新的版本可用时,通知每个人它是可用的。
但是,尽管如果服务器在线、出现网络错误或服务器在检查过程中离线时,.NET都能正常工作,但它会返回Socket或WebException错误。
我试着捕捉错误:
try
{
_ad.CheckForUpdateAsync();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}例如,即使我将WebException或任何其他类型的异常放在该捕获中,它似乎也不能捕获它。我认为这是因为CheckForUpdateAsync()是在一个单独的线程上进行的。
有没有办法可靠地捕获这些错误,这样我就不会在操作过程中随机弹出.NET errors?
发布于 2011-11-05 21:31:49
您可以通过添加CheckForUpdateCompleted来检查ApplicationDeployment.CheckForUpdateAsync方法上的错误,甚至如下所示
ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
ad.CheckForUpdateCompleted += new CheckForUpdateCompletedEventHandler(ad_CheckForUpdateCompleted);在
void ad_CheckForUpdateCompleted(object sender, CheckForUpdateCompletedEventArgs e)
{
if (e.Error != null)
{
// e.Error details here
}
}可以从CheckForUpdateCompleted事件的InvalidDeploymentException属性中找到DeploymentDownloadException和Error详细信息。
https://stackoverflow.com/questions/8020382
复制相似问题