当我使用PHP服务时,Windows Phone 7推送通知没有显示在我的手机上


Windows Phone 7 Push Notifications Not Showing Up On My Phone when I use PHP service

我的php服务有一些问题。我使用php发送Tile更新和Toast更新请求到MS通知服务。在响应的第一个请求之后,我有以下标题:

的URL: http://db3.notify.live.net/throttledthirdparty/01.00/AAHFGdPCYDOUSbbzeTpjKOMZAgAAAAADAQAAAAQUZm52OjIzOEQ2NDJDRkI5MEVFMEQ

反应:

HTTP/1.1 200 OK
Cache-Control: private
Server: Microsoft-IIS/7.5
X-DeviceConnectionStatus: Connected
X-NotificationStatus: Received
X-SubscriptionStatus: Active 
X-MessageID: da8aa692-e9cd-682b-fe1c-22ffe7379414
ActivityId: cd9c8b0b-26db-4eac-835d-9f9505d7a381 
X-Server: DB3MPNSM016
X-AspNet-Version: 4.0.30319 
X-Powered-By: ASP.NET
Date: Wed, 20 Jul 2011 11:21:42 GMT
Content-Length: 0
Array ( [X-SubscriptionStatus] => Active [X-NotificationStatus] => Received [X-DeviceConnectionStatus] => Connected )

但是在我的WP7应用程序中我什么都没有。当我再次尝试更新tile时:

的URL: http://db3.notify.live.net/throttledthirdparty/01.00/AAHFGdPCYDOUSbbzeTpjKOMZAgAAAAADAQAAAAQUZm52OjIzOEQ2NDJDRkI5MEVFMEQ

反应:

HTTP/1.1 404 Not Found
Cache-Control: private
Content-Type: text/html
Server: Microsoft-IIS/7.5
X-DeviceConnectionStatus: Disconnected
X-NotificationStatus: Dropped 
X-SubscriptionStatus: Expired
X-MessageID: {B6AAC154-DA37-277F-14FE-9F76365ACDD1}
ActivityId: f6b6a06b-a836-449c-9c9b-dc3033850981
X-Server: DB3MPNSM033 
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Wed, 20 Jul 2011 11:29:34 GMT
Content-Length: 1245 

似乎在第一次请求后我的url被删除了。

我的WP7应用程序没有任何问题,因为当我使用WindowsService时,一切都很好。

似乎我的问题类似的问题[问题]:Windows Phone 7推送通知不显示在我的手机

仔细检查您的XML。我有完全相同的行为与unclosed标签

在浪费了一些时间试图修复一个没有任何错误的XML(由于答案建议404错误代码是由无效的XML引起的)之后,我觉得有必要分享我的发现。

第一次在通知中发送无效的XML将不会立即在响应中识别(即响应将是200/Received/Active/Connected,即使通知不会到达设备)。

但是,下次您尝试向该通道发送通知时(无论它具有有效或无效的XML),您将发现该通道不再有效(即响应将是404)。

由于先前发送的无效消息,通道变得无效。

这意味着,如果你得到这个错误,你必须首先获得一个新的通知通道(通过启动你的应用程序,它应该启动一个订阅的MPN服务)。

只有这样,您才应该验证XML的正确性,并尝试将通知发送到新通道。这一次,您将再次获得200状态,而知道XML是否有效的唯一方法是检查通知是否到达设备。