问题描述
|
我对以下问题感到恶梦,我试图通过描述最简单的测试案例来尽可能简单地提出这个问题,在该案例中我设法重新创建了该问题。
首先,我有一个ASP.NET应用程序。
其次,我有一个Flex客户端,它使用HTTPService访问ASP.NET网站上的资源。
使用以下代码访问服务:
<mx:HTTPService id=\"rpcTest\"
url=\"{url}\"
result=\"onServiceResult(event)\"
method=\"GET\"
resultFormat=\"text\"
useProxy=\"false\"
showBusyCursor=\"true\">
</mx:HTTPService>
在我的Flex应用程序中,我有一个执行此操作的按钮:
private function doTest2():void
{
arrMsgs.removeAll();
mgrTest1.loadData(someUrl);
mgrTest2.loadData(someUrl);
mgrTest3.loadData(someUrl);
}
其中每个mgrTest *对象都是一个包装了如上所述的HTTPService的MXML组件:
问题是单击此按钮可能会导致以下错误:
[RPC Fault faultString = \“ HTTP请求错误\” faultCode = \“ Server.Error.Request \” faultDetail ==“错误:[IOErrorEvent类型= \” ioError \“气泡= false可取消= false eventPhase = 2文本= \ “错误#2032:流错误。 URL:http:// localhost:50352 / Home / About \“]。URL:http:// localhost:50352 / Home / About \”]
在mx.rpc :: AbstractInvoker / http://www.adobe.com/2006/flex/mx/internal :: faultHandler()[C:\\ autobuild \\ 3.2.0 \\ frameworks \\ projects \\ rpc \\ src \\ mx \\ rpc \\ AbstractInvoker.as:220]
在mx.rpc :: Responder / fault()[C:\\ autobuild \\ 3.2.0 \\ frameworks \\ projects \\ rpc \\ src \\ mx \\ rpc \\ Responder.as:53]
在mx.rpc :: AsyncRequest / fault()[C:\\ autobuild \\ 3.2.0 \\ frameworks \\ projects \\ rpc \\ src \\ mx \\ rpc \\ AsyncRequest.as:103]
在DirectHTTPMessageResponder / errorHandler()[[C:\\ autobuild \\ 3.2.0 \\ frameworks \\ projects \\ rpc \\ src \\ mx \\ messaging \\ channels \\ DirectHTTPChannel.as:362]
在flash.events::EventDispatcher/dispatchEventFunction()
在flash.events::EventDispatcher/dispatchEvent()
在flash.net::URLLoader/onComplete()
确实是我断断续续的行为!
观察结果:
1-问题是间歇性的。这通常是在我第一次单击按钮时发生的。如果我一直单击按钮,则几乎再也不会发生这种情况(即所有服务都可以正常工作)。如果然后等待5分钟左右,然后再次单击该按钮,则几乎总是再次失败。
2-如果我只呼叫一项服务而不是三项服务,那将永远不会发生。
3-在Firefox中永远不会发生
4-如果我尝试使用Fiddler / Charles检查客户端计算机上的流量,则永远不会发生。
5-在ASP.NET网站上访问哪种资源似乎都没有关系。 (aspx,ashx,xml)
6-将HTTPService结果格式设置为什么似乎无关紧要。
7-我没有设法重新创建从非ASP.NET站点访问资源的问题。
我已经为此奋斗了几天,而我想出的最好的办法是使用每5秒触发一次的计时器,该计时器使用HTTPService访问服务器上的简单保持活动的url。出于某种原因,这似乎有所帮助,但是我不确定为什么,甚至我可以依靠它作为解决方案。
如果有人可以提供帮助,我将不胜感激。 (我遇到一个令人尴尬的情况,我需要解决的是:-(
谢谢
加里·B
标头示例:
HTTP / 1.1 200 OK
服务器:ASP.NET开发服务器/10.0.0.0
日期:2011年6月15日星期三11:04:09 GMT
X-AspNet版本:4.0.30319
X-AspNetMvc版本:3.0
缓存控制:私有
内容类型:text / html;字符集= utf-8
内容长度:921
连接:关闭
我从Fiddler那里拿走了这些,当然,一旦我使用Fiddler,我就永远不会出错!我假设标头与如果Fiddler不存在时将返回给Flex的标头相同。不知道我能否在Flex中获得标题。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)