2013-09-17 3 views
-2

Здравствуйте, я следую за этим link, чтобы выполнить проверку обновлений изнутри приложения. Но я не получаю его, я расширяю запрос, и я думаю, что есть проблема в его содержании.Проверка обновлений внутри самого приложения

проблема в том, что она не может получить обновленную версию.

var request = WebRequest.Create(url); // here i checked it on applying breakpoints 

private Task<Version> GetUpdatedVersion() 
{ 
    var cultureInfoName = CultureInfo.CurrentUICulture.Name; 
var url = string.Format("http://marketplaceedgeservice.windowsphone.com/v8/catalog/apps/{0}?os={1}&cc={2}&oc=&lang={3}​", 
    GetManifestAttributeValue("ProductID"), 
    Environment.OSVersion.Version, 
    cultureInfoName.Substring(cultureInfoName.Length - 2).ToUpperInvariant(), 
    cultureInfoName); 

var request = WebRequest.Create(url); 

return Task.Factory.FromAsync(request.BeginGetResponse, result => 
{ 
    var response = (HttpWebResponse)request.EndGetResponse(result); 

    if (response.StatusCode != HttpStatusCode.OK) 
    { 
     throw new WebException("Http Error: " + response.StatusCode); 
    } 

    using (var outputStream = response.GetResponseStream()) 
    { 
     using (var reader = XmlReader.Create(outputStream)) 
     { 
      reader.MoveToContent(); 

      var aNamespace = reader.LookupNamespace("a"); 

      reader.ReadToFollowing("entry", aNamespace); 

      reader.ReadToDescendant("version"); 

      return new Version(reader.ReadElementContentAsString()); 
     } 
    } 
}, null); 

}

enter image description here

+0

Вы забыли задать вопрос. – tnw

+0

Почему бы вам не сделать синхронный процесс и отладить его? – Arran

+0

Я обновил вопрос .. посмотрел его..и я должен сделать это обновление async .. – loop

ответ

2

Там нет какой-то построить в расширении асинхронном для WebRequest нет необходимости строить свои собственные. Вы можете напрямую использовать WebResponse response= await request.GetResponseAsync();
Что касается реальной проблемы, я проверил хранилище с идентификатором приложения на скриншоте отладки и couldn't find any app coresponding to this app id, поэтому этот идентификатор, вероятно, является идентификатором приложения, используемым для разработки, а не реальным идентификатором приложения в магазине, для его работы он должен быть реальным идентификатором магазина (когда вы действительно публикуете приложение в хранилище, оно должно работать, поскольку магазин автоматически обновит идентификатор приложения). Если вы еще не опубликовали приложение в магазине, для проверки наилучшего, возможно, просто использовать идентификатор приложения другого приложения для целей тестирования.
Обновление:
Очевидно, что это был идентификатор приложения, который был проблемой. (например, я сказал, что это должен быть идентификатор приложения опубликованного приложения в приложении магазина, а не локальный вариант разработки)

+0

. Я пробовал это с помощью приложения id приложения в store..and ошибка при добавлении namesspace, которое вы указали. ..прорыв не существует в пространстве имен. – loop

+0

Вы используете пакет async bcl nuget для поддержки Task на wp7, правильно? Или вы на телефоне Windows 8? (ваше сообщение помечено окном телефона 7) –

+0

мое приложение будет нацелено на обе платформы .. и на самом деле главная проблема заключается в том, что ... ссылка на самом деле говорит, что это для платформы ... и работает нормально..то почему я получаю проблему ? – loop

Смежные вопросы