ОБНОВЛЕНИЕ: сюжет усиливается. Я изменил имя моего канала, и он внезапно заработал (это означает, что это не проблема с моей службой push-уведомлений, поскольку я получаю тот же HTTP-ответ от сервера уведомлений Microsoft Push).
Однако для меня это не решение. Как я смогу проверить это и ЗНАТЬ, что мои пользователи получают свои 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;
}
Я следую стандартной структуре push WP7:
Хорошо ... пока все в порядке. Никаких ошибок, я получил свой Uri, отправил его в мою службу. Я прикрепляю свое приложение к стартовому экрану, и моя служба отправляет push-запрос в Uri (отправляя только счет, так что я получаю небольшое число push-счетчиков в верхнем правом углу). Я возвращаю статус HTTP 200 со следующим:
DeviceConnectionStatus => Connected
NotificationStatus => Received
SubscriptionStatus => Active
И затем ... ничего. В моем приложении не отображается статус отправки. Теперь я попробовал его на своем устройстве, в эмуляторе, на другом устройстве и на нескольких серверах, и результат всегда был одинаковым. Похоже, все работает, за исключением того, что не работает.