Ребята, у меня запущен пример приложения для WP7.У меня также есть служба (WCF), и у меня есть отправитель push-уведомлений (WPF).Пока это выглядит довольно похоже на механизм push-уведомлений, который Microsoft установила в учебном комплекте WP7.Когда я запускаю приложение и затем выхожу из приложения, чтобы вернуться на главный экран, я могу успешно отправить всплывающее уведомление - оно появляется сверху, издает небольшой шум, отображает правильный текст и запускает мое приложение, когда выкоснитесь его.
Однако, когда я посылаю одно и то же точное уведомление о тосте оболочки в мое приложение, когда приложение выполняется на переднем плане, я получаю сообщение об ошибке, сообщающее, что для корневого узла XML есть недопустимый символ.Эта ошибка происходит глубоко внутри недр WP7, так как мой обработчик уведомлений о тостах никогда не вызывается, и отладчик не может показать мне строку кода, которая вызвала ошибку.
Я использую NotificationSenderUtility, которая поставляется с WP7Пример push-уведомления в учебном комплекте для отправки уведомлений.
Если кто-нибудь знает, почему это происходит или как я могу это исправить, я хотел бы знать, потому что у меня есть демонстрация, которую я даю налагерь кода в субботу и push-уведомления должны быть частью демонстрации:)
Вот трассировка стека, которую я получаю:
в System.Xml.XmlTextReaderImpl.Throw (Exception e) в SystemXMLParseDocumentContent () в System.Xml.XmlTextReaderImpl.Read () в Microsoft.Phone.Notification.ShellObjectChannelInternals.ParseXMLToProperties (String xmlString, IDictionary`2 & propertyBag) в Microsoft.Phone.Notification.ShellObjectChannelInternals.OnNotificationReceived (двоичный объект IntPtr, blobSize UInt32) в Microsoft.Phone.Notification.ShellObjectChantIntInt32132b32Int32IntInt32Int32Int32Int32NT32NBB32Ent32Int32NT32BNT32ShBerIntSerb_Int32Ent_Int_b_D_P_P_P_P_S_S_S_T_W_32_t_P_T_P_T_T_T_T_P_T_T_P_T_T_T_32_ \ \ \ \ \ \\\\\\\\\.blob2, UInt32 blobSize2) в Microsoft.Phone.Notification.HttpNotificationChannel.Dispatch (объект threadContext) в System.Threading.ThreadPool.WorkItem.doWork (объект o) в System.Threading.Timer.ring ()
Спасибо, Кевин