Для меня, однако, это не решение.Как я смогу это проверить, и ЗНАЮ, что мои пользователи получают свои push-уведомления, если я получаю тот же ответ, когда он не работает, как я, когда он есть?
Ответ таков, что выне может.Это ограничение того, как WP7 обрабатывает уведомления.
Для структурированных уведомлений, таких как Tile и Toast, если вы получите ответ Connected / Active / Received / 200, то вы можете знать, что MPNS принял ваш запрос на уведомление.Однако это не означает, что вы отправили действительную полезную нагрузку XML.
Компонентом, который обрабатывает синтаксический анализ XML, является Push-клиент, процесс, выполняющийся на телефоне, который принимает push-уведомления и передает их соответствующим приложениям,вывод тоста и т. д.
Если вы отправили недопустимый XML, это абсолютно не указывает на то, что вы это сделали.Самое большее, если вы попытаетесь отправить уведомление снова на тот же URI push-канала, вы получите 404 в ответ.По-видимому, получение недопустимой полезной нагрузки XML для конкретного приложения приводит к закрытию push-канала этого приложения, что требует от вас повторения всей процедуры.
Я обнаружил это при отладке с нашей командой серверов и при попытке получитьтелефон для отображения альтернативной живой плитки.Единственный совет, который я могу вам предложить, - это четырехкратная проверка вашего XML.
Вы получите ошибки в обработчике событий ошибок для канала push-уведомлений для уведомлений Toast, которые имеют недопустимый XML, поскольку вы можете отправлять /получать уведомления о тостах, когда приложение активно.
Если кто-то из Microsoft читает это, ПОЖАЛУЙСТА предоставит более подробную документацию о возможных состояниях ошибок в push-уведомлении.система оповещения.Нам также нужен обработчик событий для уведомлений плитки или, по крайней мере, мы можем получать уведомления плитки, когда приложение находится на переднем плане, и запускать событие ошибки канала уведомлений, чтобы мы могли знать, что наша полезная нагрузка XML недействительна.
Особенно, если ваша веб-служба не построена на WCF, .NET, Azure и т. Д., Работа с Push-уведомлениями в WP7 - это все равно, что блуждать вслепую.
Документация для сообщения об исключении, читающего "InvalidOperationException(Failed to open channel)
"следует , а не читать: «Это исключение возникает, когда канал уведомлений не открывается. Попробуйте открыть канал уведомлений снова».( ссылка )