我在互联网上发布了一个项目,每天都有成千上万的用户使用。基本上,我在AmazonAWS中使用服务器部件,在Tomcat中运行的Java 6中编译服务器部件。我正在使用AMF发布服务,我的客户端使用Flash Builder构建在Flex 4.6中,以生成连接到AMF服务的类。我用来连接服务的代码是:
public var cpcService:RemotingServicesImpl;
private function callService():void
{
FlexGlobals.topLevelApplication.callingService=true;
encryptedSession=ResourcesUtil.buildSessionId(globalSettings.sessionId, globalSettings);
var responder:Responder=new Responder(gameStateLoaded, gameStateFailed);
var token:AsyncToken=cpcService.getGameState(encryptedSession, taskKey);
token.addResponder(responder);
}
private function gameStateFailed(ev:FaultEvent=null):void
{
DisplayUtil.trackErrorInfoEvent("FATAL - FatalError", "getGameState-" + FlexGlobals.topLevelApplication.mainView.currentState, ev, encryptedSession);
}
private function gameStateLoaded(ev:Object):void
{
// my fantastic code when everything is ok
}
通常情况下,一切正常,我的应用程序正在运行,但有些调用(如每500个1)无法正常工作,我知道,因为在trackErrorInfoEvent函数中我正在Google Analytics中注册一个事件,所以我知道这个是随机发生的。这是错误:
faultCode = "Client.Error.MessageSend"
faultDetail = "Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Failed: url: 'https://appcog.cognifit.com/messagebroker/amf'"
faultString = "Send failed"
rootCause = (null)
当然,网址是正确的,并且一直有效。
我在some blogs中看到添加此行:
<add-no-cache-headers>false</add-no-cache-headers>
问题已得到修复,但我的配置文件中仍有该行,但仍在发生。
我已检查过我的服务器日志,并且我没有任何时间的服务中断记录。
我真的很感激任何帮助,提前谢谢!