ApplicationDeployment.CheckForUpdateAsync Метод, обрабатывающий исключения - PullRequest
3 голосов
/ 05 ноября 2011

Кажется, у меня странная проблема с ApplicationDeployment.CheckForUpdateAsync методом. У меня есть, в настоящее время, по таймеру, который проверяет сервер на обновление с заданным интервалом. Причина этого заключается в том, что мы должны обеспечить, чтобы все были в последней версии, и когда новая версия будет доступна, чтобы уведомить всех, что она доступна.

Однако, несмотря на то, что он работает нормально, если сервер подключен к сети, если имеется ошибка сети или сервер отключается во время проверки, .NET возвращает ошибку Socket или WebException.

Я пытался отловить ошибки:

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

Например, но даже если я добавлю WebException или любой другой тип исключения в этот улов, он, похоже, не поймает его. Я предполагаю, что это потому, что CheckForUpdateAsync() происходит в отдельном потоке.

Есть ли способ надежно перехватить эти ошибки, чтобы у меня не было случайного .NET errors, всплывающего во время работы?

1 Ответ

0 голосов
/ 05 ноября 2011

вы можете проверить ошибки на 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 
    }
}

, которые вы можете найти InvalidDeploymentException и DeploymentDownloadException - подробности из свойства Error события CheckForUpdateCompleted.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...