在Windows Azure移动服务(Mobile Service)中,除了管理门户所提供的仪表板等服务来监控移动服务的运行状况外,还提供了日志(LOG),可以更好地对移动服务进行监控,并且可以在需要的时候,对一些异常情况进行诊断。在移动服务中,经常会使用服务端的脚本(Server scripts),对于这些脚本的调试来说,日志提供了一个非常重要的支持。此外,在移动服务中,一个非常重要的功能便是与提醒服务(Notification Service)的集成,例如针对Windows商店应用(Store Apps)的Windows 推送提醒服务 (WNS)、针对Windows Phone的Microsoft 推送提醒服务 (MPNS)、针对iOS应用的Apple 推送提醒服务 (APNS)、针对Android应用的云端到设备的消息传递 (C2DM)等,可以通过日志来监控消息提醒的推送状况。
具体操作方式如下,在移动服务的管理门户中,点击“日志(LOG)”功能,将列出所有的日志信息。在屏幕的底端,可以点击“详细信息”,具体查看某个日志的详细信息。
在Windows Azure移动服务中,对于每个自定义API的调用(Call),都会在日志中产生一个条目,如下面所示:
在Windows Azure移动服务中,对于每个消息的推送(PUSH),都会在日志中产生一个条目,如下面所示。在条目中,可以发现状态码(StatusCode)为200,标识这个推送已成功完成。此外,还可以看到这个推送所通过的通道(Channel),可以对移动端提供的用于callback的通道进行追踪。
在具体部署一个Windows Azure移动服务的时候,我遇到一个情况,发现移动设备端并没有按照预期接收到消息提醒。检查服务端脚本,应该没有什么程序错误。后来,在日志中找到了相关日志,如下图所示。
在条目中,可以发现状态码(StatusCode)为410,标识这个推送没有完成。而错误信息显示,这个推送所通过的通道(Channel)已经失效。
此外,在条目中,还可以追踪服务端脚本等程序错误,例如下面所展示的异常,及发生异常的具体位置等信息。
对于Notification服务的请求及响应的更多信息,可以访问:
Push notification service request and response headers
msdn.microsoft.com/.../hh465435.aspx