0

我在使用 FluorineFx 映射到同名的 AS3 类(Flex)时遇到了一个非常奇怪的行为。

此类(C#)有一个 FluorineFx.AMF3.ByteArray 字段,映射到 AS3 中的 ByteArray 属性,其目的是传输存储在数据库中的二进制文件。

有时(并非总是)我收到此错误:“Server.Acknowledge.Failed - 未收到确认消息 - 期待 mx.messaging.messages.AcknowledgeMes​​sage,但收到 null。” 这个错误永远不会发生在开发机器中,只会发生在网络上的客户端中。

用 Firebug/FlashFirebug 调试,这个异常是随机抛出的:

RangeError:错误 #2006:提供的索引超出范围。在 ObjectInput/readObject() 在 mx.collections::ArrayList/readExternal()[E:\dev\hero_private\frameworks\projects\framework\src\mx\collections\ArrayList.as:593] 在 mx.collections::ArrayCollection /readExternal()[E:\dev\hero_private\frameworks\projects\framework\src\mx\collections\ArrayCollection.as:149]

这让我发疯,我通常知道这是由映射错误引起的,但如果是这种情况,它应该总是无处不在。

任何帮助我都会感激。

4

1 回答 1

1

好吧,我很尴尬,但也许这可以帮助其他人:真正的问题是那些机器中的防火墙。在某些情况下,Personal ZoneAlarm 和其他情况下,Windows 防火墙。这真的很有意义,因为应该中断嵌入二进制文件的响应以保护客户端。

于 2012-03-22T13:33:00.803 回答