как только вы сделаете это, и вы все еще не получаете push-уведомлений, я напишу в Microsoft, чтобы узнать, могут ли они увидеть что-нибудь, связанное с push-уведомлениями.
ЛЕНИЕ: заговор утолщается. Я изменил название своего канала, и он неожиданно заработал (что означает, что это не проблема с моей службой push, так как я получаю тот же HTTP-ответ от сервера push-уведомлений Microsoft).
Для меня, однако, это не решение. Как я смогу это проверить, и ЗНАЮ, что мои пользователи получают свои push-уведомления, если я получаю тот же ответ, когда он не работает, как я, когда он работает?
[ОРИГИНАЛЬНАЯ ПОЧТА]
Я пытался получать push-уведомления на свое устройство Windows Phone 7, но у меня очень большие проблемы, на которые я не могу найти ответы. Я начну с кода C #.
Я установил push-уведомления, используя следующий код C #.
private HttpNotificationChannel channel;
private static string PUSH_CHANNEL = "MySpecialPushChannel";
private Uri PushUri = null;
private bool IsPushRegistered = false;
public void StartPushSubscription()
{
try
{
channel = HttpNotificationChannel.Find(PUSH_CHANNEL);
}
catch
{}
if (channel != null)
{
PushUri = channel.ChannelUri;
if (!channel.IsShellTileBound)
channel.BindToShellTile();
}
else
{
channel = new HttpNotificationChannel(PUSH_CHANNEL);
channel.ChannelUriUpdated += new EventHandler<NotificationChannelUriEventArgs>(channel_ChannelUriUpdated);
channel.HttpNotificationReceived += new EventHandler<HttpNotificationEventArgs>(channel_HttpNotificationReceived);
channel.ErrorOccurred += new EventHandler<NotificationChannelErrorEventArgs>(channel_ErrorOccurred);
try
{
channel.Open();
channel.BindToShellTile();
}
catch (Exception err)
{
channel = null;
IsPushRegistered = false;
// Code to try again
}
}
}
void channel_ChannelUriUpdated(object sender, NotificationChannelUriEventArgs e)
{
PushUri = e.ChannelUri;
IsPushRegistered = true;
}
Я следую стандартной структуре толчка WP7:
Найдите HttpNotificationChannel (или создайте новый)Зарегистрируйте обработчик событий, чтобы получить push-уведомление URIОткрыть каналПривязать к плиткеОбрабатывать канал Uri (который мы отправляем на наш сервис, чтобы дождаться счастливого дня, когда мы отправляем push-уведомлениеОК ... пока все хорошо. Нет ошибок, я получаю свой Uri, отправьте его на мой сервис просто отлично. Я прикрепляю свое приложение к стартовому экрану, и моя служба отправляет push-запрос в Uri (отправляя только счетчик, чтобы в правом верхнем правом углу я получил небольшой номер счетчика). Я возвращаю HTTP 200 статус со следующим:
DeviceConnectionStatus => Подключено
NotificationStatus => Получено
SubscriptionStatus => Активный
А потом ... ничего. В моем приложении не отображается статус push. Я сейчас попробовал это на своем устройстве, в эмуляторе, на другом устройстве, и с несколькими серверами, и результат всегда одинаков. Все выглядит так, будто оно работает, за исключением того факта, что оно не работает.