我正在尝试为我的Windows 8手机应用程序创建推送通知。我使用的是微软的例子(下面的代码和演示视频链接),它在模拟器中运行良好,但当我调试到设备时,应用程序会运行,但从未连接到发送通知的WPF应用程序。然而,模拟器每次都运行良好。我正在确保做到以下几点;
- VS必须处于WPF应用程序的管理员模式
- 在手机应用程序中,在方法SubscribeToService()中,我将地址更改为我电脑的名称;
string baseUri = "http://MY-PC-NAME:8000/RegistrationService/Register?uri={0}";
- 我总是先运行WPF应用程序,然后再运行Phone应用程序
- 我已关闭防火墙以允许访问端口8000
为了让应用程序在实际设备上运行,我还需要做一些额外的事情吗?
http://code.msdn.microsoft.com/Windows-Phone-8-JumpStart-ab6c839a
http://channel9.msdn.com/Series/Building-Apps-for-Windows-Phone-8-Jump-Start/Building-Apps-for-Windows-Phone-8-Jump-Start-08-Push-Notifications
我最终使用了WPF的ASP.NET Web表单插件,没有任何问题。请参阅下面的链接。我只是在手机和提供的网络表单之间添加了功能。当"订阅服务"时,正如你在问题中所说(即,将设备URI发送到web服务,以发送推送通知),我只是在运行web表单时使用了ASP.NET提供的地址(即,点击run,并使用地址栏中的地址)。这应该在您的机器上本地工作。
希望这能有所帮助,我已经从MSDN示例中粘贴了下面的示例项目。
http://code.msdn.microsoft.com/Toast-Notification-Sample-fb20ae13
确保从发送推送的服务器打开出站TCP端口号2195。