Windows phone 7 404使用示例代码发送推送通知时出错

Windows phone 7 404使用示例代码发送推送通知时出错,windows-phone-7,push-notification,mpns,Windows Phone 7,Push Notification,Mpns,我从应用程序中获取了我的url。首先是: http://sn1.notify.live.net/throttledthirdparty/01.00/ 如果我使用浏览器导航到该URL,我会收到以下消息: Microsoft Push Notification Server 然后我抓取了微软提供的代码 http://msdn.microsoft.com/en-us/library/ff402545%28v=VS.92%29.aspx 如果我接受C#代码并按原样使用(仅更改URL,有效负载为空字

我从应用程序中获取了我的url。首先是:

http://sn1.notify.live.net/throttledthirdparty/01.00/
如果我使用浏览器导航到该URL,我会收到以下消息:

Microsoft Push Notification Server
然后我抓取了微软提供的代码

http://msdn.microsoft.com/en-us/library/ff402545%28v=VS.92%29.aspx
如果我接受C#代码并按原样使用(仅更改URL,有效负载为空字节数组,并将“”字符串更改为Guid.NewGuid().ToString()

我每次都得到404

因为我没有通过浏览器获得404,所以内容一定很重要,推送通知服务器依赖于内容,因此如果我通过删除通知消息并添加(按照他们的建议)将其更改为简单的原始通知:

我仍然每次都会得到404。我试着用同样的结果做toast通知


我做错了什么?

您收到404的原因是您发送的notificationMessage数据与预期不符。请尝试一下,看看是否有效

您可以在此处找到教程:

字符串模板=
"" +
"" +
"" +
"{0}" +
"{1}" +
"" +
"";
string toastXML=string.Format(模板,“测试”,“这是测试”);
byte[]notificationMessage=新的UTF8Encoding().GetBytes(toastXML);

在将toast通知绑定到shell后,我最终让自己的模板开始工作。我有一个方法可以做到这一点,但在某些情况下没有调用该方法。

您在哪里找到该模板的?您使用单引号而不是双引号,并且标记没有大写,这与文档中所说的不同。我让它工作了k按照MSDN文档中的规定通过XML发送。可能两个版本(小写和大写)都有效。404不是由错误的XML直接导致的。如果发送错误的XML,您将得到一个提示成功的响应(200/Connected/Active/Received)。仅在稍后,当您向同一通道发送另一个通知时(对于有效或无效的XML),您可能会得到404。404是由通道不再有效引起的。通道不再有效的原因是之前发送的无效XML。
        byte[] notificationMessage = new byte[] {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08};
        sendNotificationRequest.Headers.Add("X-NotificationClass", "13"); 
string template =
        "<?xml version='1.0' encoding='utf-8'?>" +
        "<wp:notification xmlns:wp='WPNotification'>" +
            "<wp:toast>" +
                "<wp:text1>{0}</wp:text1>" +
                "<wp:text2>{1}</wp:text2>" +
            "</wp:toast>" +
        "</wp:notification>";

string toastXML = string.Format(template, "Testing", "This is a test");

byte[] notificationMessage = new UTF8Encoding().GetBytes(toastXML);