当我使用 PHP 服务时,Windows Phone 7 推送通知未显示在我的手机上
Posted
技术标签:
【中文标题】当我使用 PHP 服务时,Windows Phone 7 推送通知未显示在我的手机上【英文标题】:Windows Phone 7 Push Notifications Not Showing Up On My Phone when I use PHP service 【发布时间】:2011-07-21 13:55:01 【问题描述】:我的 php 服务有一些问题。我使用 php 向 MS 通知服务发送 Tile 更新和 Toast 更新请求。在第一次响应请求后,我有以下标题:
网址: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 应用程序中,我什么都没有。当我再次尝试更新磁贴时:
网址: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
似乎在第一次请求后我的网址被删除了。
我的 WP7 应用程序没有任何问题,因为当我使用 WindowsService 时一切正常。
看来我的问题类似于问题[问题]:Windows Phone 7 Push Notifications Not Showing Up On My Phone
【问题讨论】:
这里有同样的问题,除了我使用代码发送示例中的推送(ASPX 形式)。第一次,工作,并在手机中看到更新的磁贴。然后我尝试了我的php版本,没有用,回到ASPX,404失败。 【参考方案1】:仔细检查您的 XML。我对未封闭的标签有完全相同的行为。
【讨论】:
【参考方案2】:在浪费了一些时间试图修复一个没有任何问题的 XML 之后(由于答案表明 404 错误代码是由无效的 XML 引起的),我觉得有必要分享我的发现。
第一次在通知中发送无效的 XML 不会立即在响应中被识别(即响应将是 200/Received/Active/Connected,即使通知不会到达设备)。
但是,下次您尝试向该通道发送通知时(无论它具有有效还是无效的 XML),您会发现该通道不再有效(即响应将为 404)。
频道因之前发送的无效消息而失效。
这意味着,如果您收到此错误,您必须首先获得一个新的通知渠道(通过启动您的应用程序,这应该会启动对 MPN 服务的订阅)。
只有这样,您才应该验证 XML 的正确性并尝试将通知发送到新通道。这次您将再次获得 200 状态,并且知道 XML 是否有效的唯一方法是检查通知是否到达设备。
【讨论】:
以上是关于当我使用 PHP 服务时,Windows Phone 7 推送通知未显示在我的手机上的主要内容,如果未能解决你的问题,请参考以下文章