Windows phone 7 Wp7:推送通知通道URI为空

Windows phone 7 Wp7:推送通知通道URI为空,windows-phone-7,push-notification,mpns,Windows Phone 7,Push Notification,Mpns,我们正在尝试使用文档“如何:为Windows Phone设置通知频道”中的最新代码测试推送通知 public HttpNotificationChannel myChannel; public void CreatingANotificationChannel() { myChannel = HttpNotificationChannel.Find("MyChannel"); if (myChannel == null) { myChannel = new HttpNoti

我们正在尝试使用文档“如何:为Windows Phone设置通知频道”中的最新代码测试推送通知

public HttpNotificationChannel myChannel;
public void CreatingANotificationChannel()
{
  myChannel = HttpNotificationChannel.Find("MyChannel");

  if (myChannel == null)
  {
    myChannel = new HttpNotificationChannel("MyChannel","www.contoso.com");

    // An application is expected to send its notification channel URI to its corresponding web service each time it launches.
    // The notification channel URI is not guaranteed to be the same as the last time the application ran.
    myChannel.ChannelUriUpdated += new EventHandler<NotificationChannelUriEventArgs>(myChannel_ChannelUriUpdated);

    myChannel.Open();
  }
  else // Found an existing notification channel.
  {
    // The URI that the application sends to its web service.
    Debug.WriteLine("Notification channel URI:" + myChannel.ChannelUri.ToString());
  }

  myChannel.HttpNotificationReceived += new EventHandler<HttpNotificationEventArgs>(myChannel_HttpNotificationReceived);
  myChannel.ShellToastNotificationReceived += new EventHandler<NotificationEventArgs>(myChannel_ShellToastNotificationReceived);
  myChannel.ErrorOccurred += new EventHandler<NotificationChannelErrorEventArgs>(myChannel_ErrorOccurred);
}
公共HttpNotificationChannel myChannel;
公共无效创建通知频道()
{
myChannel=HttpNotificationChannel.Find(“myChannel”);
if(myChannel==null)
{
myChannel=新的HttpNotificationChannel(“myChannel”,“www.contoso.com”);
//应用程序每次启动时都应将其通知通道URI发送到相应的web服务。
//通知通道URI不保证与上次运行应用程序时相同。
myChannel.ChannelUriUpdated+=新事件处理程序(myChannel\u ChannelUriUpdated);
myChannel.Open();
}
else//找到了现有的通知通道。
{
//应用程序发送到其web服务的URI。
Debug.WriteLine(“通知通道URI:+myChannel.ChannelUri.ToString());
}
myChannel.HttpNotificationReceived+=新事件处理程序(myChannel_HttpNotificationReceived);
myChannel.ShellToastNotificationReceived+=新事件处理程序(myChannel\u ShellToastNotificationReceived);
myChannel.ErrorOccessed+=新的事件处理程序(myChannel\u ErrorOccessed);
}
如果HttpNotificationChannel.Find()返回null,则会打开一个新通道,但不会触发ChannelUriUpdated事件

如果HttpNotificationChannel.Find()返回通道,则ChannelUri属性为null。此处的示例代码崩溃,因为它假定ChannelUri属性不为null

在这两种情况下都不会触发ErrorOccessed事件

我怎样才能解决这个问题?这个问题是因为microsoft server还是其他原因

提前通知

编辑 等待重播,十天后我遇到了空uri问题 有谁能告诉我,我该如何解决这个问题,MSPN服务器给chanalk uri ans一段时间,不是说它给空引用异常一段时间。
微软在做什么?

如果我没有出错,www.contoso.com这是一个示例URI,说明您需要输入自己的服务器URL地址,但根据我的经验,我从来没有这样使用过。我只想把

myChannel = new HttpNotificationChannel("MyChannel");
看这个(它是西班牙语的),但是代码非常清楚您需要做什么来设置推送通知客户端和服务


希望我能帮到你。

你正在什么手机模拟器上测试, 您是否有windows phone开发的开发者帐户订阅, 如果你解锁了手机


努鲁尔

我认为问题在于您正在使用经过身份验证的web服务的
HttpNotificationChannel
构造函数

相反,您应该使用只接受一个参数的构造函数,因为您可以签入

///保存创建或找到的推送通道。
HttpNotificationChannel推送通道;
//我们推送频道的名称。
字符串channelName=“ToastSampleChannel”;
//试着找到推送通道。
pushChannel=HttpNotificationChannel.Find(channelName);
//如果未找到通道,则创建到推送服务的新连接。
if(pushChannel==null)
{
pushChannel=新的HttpNotificationChannel(通道名称);
...
}

希望它有帮助

:我正在用手机测试此演示,是的,我有开发者帐户,也有开发者解锁手机的帐户,thnanks用于重播,我正在使用类似于此的myChannel=new HttpNotificationChannel(“myChannel”);但有一段时间不工作uri fire null reffrence异常