HttpClient GetAsync kończy się niepowodzeniem w tle w systemie Windows 8

Mam aplikację Win RT, która ma zadanie w tle odpowiedzialne za wywoływanie interfejsu API w celu pobierania danych potrzebnych do aktualizacji. Mam jednak problem; żądanie wywołania interfejsu API działa doskonale, gdy jest uruchamiane poza zadaniem w tle. Wewnątrz zadania w tle kończy się niepowodzeniem, a także ukrywa wszelkie wyjątki, które mogą pomóc w wskazaniu problemu.

Śledziłem ten problem za pomocą debugera, aby śledzić punkt problemu, i sprawdziłem, czy wykonanie zatrzymuje się na GetAsync. (Adres URL, który przekazuję, jest prawidłowy, a adres URL odpowiada w mniej niż sekundę)

var client = new HttpClient("http://www.some-base-url.com/");

try
{
    response = await client.GetAsync("valid-url");

    // Never gets here
    Debug.WriteLine("Done!");
}
catch (Exception exception)
{
    // No exception is thrown, never gets here
    Debug.WriteLine("Das Exception! " + exception);
}

Cała dokumentacja, którą przeczytałem, mówi, że zadanie w tle może mieć tyle ruchu sieciowego, ile potrzebuje (oczywiście dławione). Więc nie rozumiem, dlaczego to się nie powiedzie, lub nie wiem, w jaki sposób zdiagnozować problem. czego mi brakuje?

UPDATE / ANSWER

Dzięki Stevenowi wskazał drogę do problemu. W celu upewnienia się, że zdefiniowana odpowiedź jest tam, oto zadanie w tle przed i po poprawce:

Przed

public void Run(IBackgroundTaskInstance taskInstance)
{
    BackgroundTaskDeferral deferral = taskInstance.GetDeferral();

    Update();

    deferral.Complete();
}

public async void Update()
{
    ...
}

Po

public async void Run(IBackgroundTaskInstance taskInstance) // added 'async'
{
    BackgroundTaskDeferral deferral = taskInstance.GetDeferral();

    await Update(); // added 'await'

    deferral.Complete();
}

public async Task Update() // 'void' changed to 'Task'
{
    ...
}

questionAnswers(2)

yourAnswerToTheQuestion