我已经构建了一个复杂的AIR应用程序,该应用程序已经成功运行了很多台PC。不幸的是,我有一个互联网连接的困扰问题,我想知道是否有人曾经遇到过这个问题。
每隔一段时间,程序就会完全停止与互联网通话(所有服务都会出现故障)。我在程序中编写了特殊代码来监视我使用两种不同服务联系同一服务器的情况。
第一项服务:
var req:URLRequest = new URLRequest("myURL.com");
this.urlMonitor = new URLMonitor(req, [200, 304]); // Acceptable status codes
this.urlMonitor.pollInterval = 60 * 1000; // Every minute
this.urlMonitor.addEventListener(StatusEvent.STATUS, onStatusChange);
this.urlMonitor.start();
private function onStatusChange(e:StatusEvent):void
{
if (this.urlMonitor.available)
{
pollStatusOnline = true;
Online = true;
}
else
{
pollStatusOnline = false;
Online = false;
}
}
辅助方法是普通的HTTP服务调用:
checkInService = new HTTPService();
checkInService.method = "POST";
checkInService.addEventListener(ResultEvent.RESULT,sendResult);
checkInService.addEventListener(FaultEvent.FAULT, faultResult);
checkInService.addEventListener(InvokeEvent.INVOKE, invokeAttempt);
checkInService.url = "myURL.com";
checkInService.concurrency = Concurrency.LAST;
checkInService.send(params);
这两项服务指向同一地点,98%的时间都在工作。有时,几个小时后,我注意到这两项服务不再能连接到网站。 HTTP服务返回一个StatusCode 0.我能够打开命令提示符并直接ping服务器,而没有问题的PC出现故障。在重新启动程序之前,服务将无法再次运行。
我已经在这个问题上工作了好几个月而没有解决。如果有人能够指出我有点可能,也许这可能是问题,可能是方向,我真的很感激。
提前谢谢。
答案 0 :(得分:0)
检查您从code
收到的StatusEvent
的{{1}}值 - 这可能会提供比URLMonitor
更多的信息(您可能还想尝试传递{ {1}} HTTPService
构造函数的值,以扩大可接受的状态代码。)
如果您有权访问相关服务器(s?),请检查其日志。服务器配置是否已经发生变化,现在可能会将此类频繁请求视为泛滥?
您还应该能够在客户端计算机上使用像Fiddler或Charles这样的HTTP调试器,以查看有关应用程序发出的请求的更多信息。