我们在网上搜索并找到了 100 篇关于同一件事的帖子,但到目前为止我们还没有找到任何解决此问题的帖子。
因此,请原谅我再次问这个问题,但我们真的需要帮助来了解这里发生了什么。
我们有从 HTML 页面从 IE7 启动的 flex 应用程序。启动 SWF 应用程序后,它会多次调用后端 Java 服务(在 Weblogic 10 上运行)以检索信息。这很好用。
现在的问题是当我在同一个客户端上打开几个这样的实例时……例如通过打开多个选项卡或多个 IE7 窗口。然后我们得到#2032 流错误。
[FaultEvent fault=[RPC Fault faultString="HTTP request error"
faultCode="Server.Error.Request" faultDetail="Error: [IOErrorEvent type="ioError"
bubbles=false cancelable=false eventPhase=2 text="Error #2032: Stream Error.
URL: http://ServerName:Port/Myservice"]. URL: http:// ServerName:Port/Myservice"]
messageId="CA4B34AD-7A46-461E-7C6F-4D618ED0A112" type="fault" bubbles=false
cancelable=true eventPhase=2]
现在,如果我输入 http://ServerName : Port / Myservice [忽略空格]
在 IE7 中,它可以毫无问题地进入服务。所以网址是正确的。
如果我通过 SOAP UI 调用相同的服务,它会一次又一次地给我一个响应时间。
我能找到的最接近的解决方案是在网站上
http://faindu.wordpress.com/2008/04/18/ie7-ssl-xml-flex-error-2032-stream-error/
它表明我们应该更改启动屏幕的 HTML 标头中的缓存策略。
因此,我们在所有 HTML 页面中添加了 META 标签
<head>
<META Http-Equiv="Cache-Control" Content="no-store">
但是使用wireshark,我仍然可以在返回的响应中看到缓存控制设置为无缓存(在代码片段的末尾),而不是HTML中指定的无存储。
POST /MyService/MyService HTTP/1.1 Accept: */* Accept-Language: en-US x-flash-
version:
10,3,183,20 Content-Type: text/xml; charset=utf-8 SOAPAction: "" Content-Length: 528
Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows
NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR
3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E) Host: dhtqawl01:8081
Connection: Keep-Alive Cache-Control: no-cache
你知道这是否会解决我们的问题或我们可能做错了什么吗?
--一些关于使用和浏览器使用的额外响应
这仅使用 IE7 和 Firefox 进行了测试(不记得版本)。我们公司支持 IE,不支持 Firefox。因此我们不能迁移到 Firefox。然而,我们也在 Firefox 上进行了尝试。它不会经常发生。在 IE 上 2 出 4 失败。在 Firefox 上,我们将其提高到每 12 次失败中的 2 次。
这仅使用 IE7 和 Firefox 进行了测试(不记得版本)。我们公司支持 IE,不支持 Firefox。因此我们不能迁移到 Firefox。然而,我们也在 Firefox 上进行了尝试。它不会经常发生。在 IE 上 2 出 4 失败。在 Firefox 上,我们将其提高到每 12 次失败中的 2 次。我在网上读到的(而且我不是这方面的专家)。每次调用服务器时,浏览器都可以选择缓存该响应。现在,如果我打开多个浏览器屏幕打开相同的进程 - 例如,每个 IE 窗口都会进行相同的调用......不知何故,这些响应会混淆。现在这个人在提供的 URL 中提出了什么建议。是我们在header中设置了cache选项不被缓存。这样,响应只会在需要时出现,因此不会混淆。
我们的用户不会以这种方式使用系统。但有时他们确实会收到完全相同的错误消息。他们声明他们不会打开多个会话。但这是迄今为止我们可以重新创建它的唯一方法。
至于防火墙......不确定这是否是问题,因为它至少在 IE 和 Firefox 和 SoapUI 中工作一次。