3

我似乎对方法有一个奇怪的问题ApplicationDeployment.CheckForUpdateAsync。目前,我有一个计时器,它以预定的时间间隔检查服务器是否有更新。这样做的原因是我们需要确保每个人都使用最新版本,并且当有新版本可用时,通知每个人它可用。

但是,如果服务器在线,如果出现网络错误或服务器在检查期间离线,则它可以正常工作,.NET 会返回一个SocketorWebException错误。

我试图捕捉错误:

        try
        {
            _ad.CheckForUpdateAsync();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

例如,但即使我WebException在该捕获中放置或任何其他类型的异常,它似乎也没有捕获它。我认为这是因为CheckForUpdateAsync()发生在单独的线程上。

有什么方法可以可靠地捕获这些错误,这样我就不会.NET errors在操作过程中随机弹出?

4

1 回答 1

0

您可以通过添加以下内容来检查ApplicationDeployment.CheckForUpdateAsync方法上的错误CheckForUpdateCompleted

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 事件的 Error 属性中找到详细信息InvalidDeploymentExceptionDeploymentDownloadException

于 2011-11-05T13:31:49.070 回答