Windows phone 7 向正在运行的WP7应用程序发送Toast通知时出现Xml问题

Windows phone 7 向正在运行的WP7应用程序发送Toast通知时出现Xml问题,windows-phone-7,push-notification,toast,mpns,Windows Phone 7,Push Notification,Toast,Mpns,各位, 我已经运行了WP7的示例应用程序。我还有一个服务(WCF)和一个推送通知发送器(WPF)。到目前为止,这看起来非常类似于微软在WP7培训包中设置的推送通知安排。当我启动应用程序,然后退出应用程序返回主屏幕时,我能够成功发送祝酒通知-它出现在顶部,发出一点噪音,显示正确的文本,并在您点击时启动我的应用程序 但是,当应用程序在前台运行时,向应用程序发送相同的shell toast通知时,会收到一个错误,抱怨根XML节点的字符无效。此错误发生在WP7的内部深处,因为从未调用我的toast通知处

各位, 我已经运行了WP7的示例应用程序。我还有一个服务(WCF)和一个推送通知发送器(WPF)。到目前为止,这看起来非常类似于微软在WP7培训包中设置的推送通知安排。当我启动应用程序,然后退出应用程序返回主屏幕时,我能够成功发送祝酒通知-它出现在顶部,发出一点噪音,显示正确的文本,并在您点击时启动我的应用程序

但是,当应用程序在前台运行时,向应用程序发送相同的shell toast通知时,会收到一个错误,抱怨根XML节点的字符无效。此错误发生在WP7的内部深处,因为从未调用我的toast通知处理程序,并且调试器无法向我显示生成错误的代码行

我正在使用培训工具包中WP7推送通知示例附带的NotificationSenderUtility发送通知

如果有人知道为什么会发生这种情况,或者我如何修复它,我很想知道,因为我周六在代码夏令营上做了一个演示,推送通知应该是演示的一部分:)

这是我得到的堆栈跟踪: 位于System.Xml.XmlTextReaderImpl.Throw(异常e) 位于System.Xml.XmlTextReaderImpl.Throw(Int32 res,String resString,String[]args) 位于System.Xml.XmlTextReaderImpl.Throw(Int32 res,String resString) 位于System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace()处 位于System.Xml.XmlTextReaderImpl.ParseDocumentContent()处 位于System.Xml.XmlTextReaderImpl.Read()处 位于Microsoft.Phone.Notification.ShellObjectChannelInternals.ParseXMLTopProperties(字符串xmlString,IDictionary`2&propertyBag) 在Microsoft.Phone.Notification.ShellObjectChannelInternals.OnNotificationReceived(IntPtr blob,UInt32 blobSize)中 位于Microsoft.Phone.Notification.ShellObjectChannelInternals.ChannelHandler(UInt32事件类型、IntPtr blob1、UInt32 blobSize1、IntPtr blob2、UInt32 blobSize2) 位于Microsoft.Phone.Notification.HttpNotificationChannel.Dispatch(对象线程上下文) 在System.Threading.ThreadPool.WorkItem.doWork(对象o)处 在System.Threading.Timer.ring()中


谢谢,
Kevin

检查您的客户端代码,发件人是否符合最新文档。测试期间,规范发生了变化


您使用的培训工具包中的工具/代码可能尚未达到规范要求。

培训工具包中的代码基于RTW,培训工具包中的文档也基于RTW。我将培训工具包类使用的代码与它期望的XML进行了比较,它们都匹配。还请记住,当应用程序不在前台时,toast可以工作。。只有当应用程序未在前台运行时,它才会失败。另外,我在WP7应用程序中使用的代码不是来自培训工具包,而是来自您链接到“如何:为windows phone设置通知通道”的文档我的意思是检查发送toast的代码,看看您从培训工具包中为此使用的工具是否是最新的。我从应用程序中删除了所有培训工具包垃圾,尽管培训工具包已通过SDK RTW版本的认证。令人惊讶的是,我自己发送HTTP POST,而不使用培训工具包类解决了我的问题。该死。我讨厌“演示代码”造成的问题比它解决的问题还多。是的,有一点工作是让doco和培训材料与移动SDK保持同步。有时候球队在追赶时会有点落后。。我有一种感觉,那就是这次事件的罪魁祸首。很高兴你被分类了。很好,至少现在这里有记录,直到问题解决。