0

我们有一个带有 Java 后端的Flex 应用程序,我们在中间使用了 BlazeDS。
我们使用 Tomcat 作为 Java 应用程序服务器,它适用于在物理或虚拟服务器上自行托管应用程序的客户群。

我们已经在 AWS 上的一个新实例上设置了部署。我们可以从实例本身很好地访问应用程序,但是通过我的家庭和工作机器上的浏览器上的公共 DNS 访问它,我收到以下消息:

检测到重复的基于 HTTP 的 FlexSession,通常是由于远程主机禁用了会话 cookie。必须启用会话 cookie 才能正确管理客户端连接。

我们的客户端日志记录有更多信息,您可以看到它在收到错误之前进行了 2 次调用:

6:58:01:542 pm  [INFO] au.com.esriau.dekho.business.AbstractDelegate  - calling SessionService.getSessionInfo
6:58:01:543 pm  [DEBUG] au.com.esriau.dekho.business.AbstractDelegate  - args: (Array)#0
  [0] "0A86A336:0137C62A4BBD:ADB6:1191EBC5"
6:58:01:544 pm  [INFO] au.com.esriau.dekho.view.original.CoordinatesView  - initilization
6:58:01:545 pm  [INFO] au.com.esriau.dekho.business.AbstractDelegate  - calling ConfigurationService.getCoordinateSystems
6:58:01:545 pm  [DEBUG] au.com.esriau.dekho.business.AbstractDelegate  - args: (Array)#0
  [0] "0A86A336:0137C62A4BBD:ADB6:1191EBC5"
6:58:01:546 pm  [INFO] au.com.esriau.dekho.view.original.ScaleView  - initilization
6:58:01:991 pm  [ERROR] au.com.esriau.dekho.utilities.AlertUser  - a fault has occurred
    - Fault Details:
    - Fault Code: Server.Processing.DuplicateSessionDetected
    - Fault String: Detected duplicate HTTP-based FlexSessions, generally due to the remote host disabling session cookies. Session cookies must be enabled to manage the client connection correctly.

我通过 SE-SO 找到了一些很棒的链接,这很好地解释了这个错误。

  • 我的浏览器没有禁用 Cookie,因此可以排除这种情况。
  • 我根本没有在 AWS 上实现负载平衡,它只是我遇到的一个实例。
  • 通过查看 Firebug 和客户端日志,我看不到任何 Flex App 发出两个请求的痕迹。

因此,我不确定为什么这个问题特别发生在 AWS 上,但不会发生在我们的实验室或我们的任何客户自托管机器上,或者我们在IBM 的 Iaas平台上的实例上。

以前有没有人见过这种情况(特别是与 AWS 混合使用)并看到过解决方法?

仅供参考:我是测试人员而不是开发人员,但如果需要,可以获取更多信息。请通过评论询问。

4

1 回答 1

0

你有跨域吗?这可能是问题所在。此外,似乎虽然第一个请求还没有结束,但已经提出了一个新请求,这将导致重复会话问题。

于 2012-07-09T02:50:51.750 回答