locked
pushChannel.ChannelUri 始终为空引用 不知道问题在哪里 RRS feed

  • 问题

  • public MainPage() { /// Holds the push channel that is created or found. HttpNotificationChannel pushChannel; // The name of our push channel. string channelName = "ToastSampleChannel"; InitializeComponent(); // Try to find the push channel. pushChannel = HttpNotificationChannel.Find(channelName); // If the channel was not found, then create a new connection to the push service. if (pushChannel == null) { pushChannel = new HttpNotificationChannel(channelName); // Register for all the events before attempting to open the channel. pushChannel.ChannelUriUpdated += new EventHandler<NotificationChannelUriEventArgs>(PushChannel_ChannelUriUpdated); pushChannel.ErrorOccurred += new EventHandler<NotificationChannelErrorEventArgs>(PushChannel_ErrorOccurred); // Register for this notification only if you need to receive the notifications while your application is running. pushChannel.ShellToastNotificationReceived += new EventHandler<NotificationEventArgs>(PushChannel_ShellToastNotificationReceived); pushChannel.Open(); // Bind this new channel for toast events. pushChannel.BindToShellToast(); } else { // The channel was already open, so just register for all the events. pushChannel.ChannelUriUpdated += new EventHandler<NotificationChannelUriEventArgs>(PushChannel_ChannelUriUpdated); pushChannel.ErrorOccurred += new EventHandler<NotificationChannelErrorEventArgs>(PushChannel_ErrorOccurred); // Register for this notification only if you need to receive the notifications while your application is running. pushChannel.ShellToastNotificationReceived += new EventHandler<NotificationEventArgs>(PushChannel_ShellToastNotificationReceived); } try { System.Diagnostics.Debug.WriteLine("Channel: " + pushChannel.ChannelUri); var start = DateTime.Now; while (pushChannel.ChannelUri == null) { System.Diagnostics.Debug.WriteLine("Waiting"); } System.Diagnostics.Debug.WriteLine("Total milliseconds for ChannelUri to Populate: " + DateTime.Now.Subtract(start).TotalMilliseconds); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine("Exception after channel open. " + ex.Message); } }

    结果是无止境的waiting. 求指教

    2012年5月29日 3:01

答案