我在C#类'Digital'中有一个非常奇怪的行为,使用FluorineFx映射到具有相同名称的AS3类(Flex)。
这个类(C#)有一个FluorineFx.AMF3.ByteArray字段,用AS3中的ByteArray属性映射,它的目的是传输存储在数据库中的二进制文件。
有时(并非总是)我收到此错误:“Server.Acknowledge.Failed - 未收到确认消息 - 期待mx.messaging.messages.AcknowledgeMessage,但收到null。”这种错误在开发机器中永远不会发生,只在网络上的客户端中发生。
使用Firebug / FlashFirebug进行扩展,随机抛出此异常:
RangeError:错误#2006:提供的索引超出范围。 at ObjectInput / readObject() 在mx.collections :: ArrayList / readExternal()[E:\ dev \ hero_private \ frameworks \ projects \ framework \ src \ mx \ collections \ ArrayList.as:593] at mx.collections :: ArrayCollection / readExternal()[E:\ dev \ hero_private \ frameworks \ projects \ framework \ src \ mx \ collections \ ArrayCollection.as:149]
这让我发疯,我知道这通常是由于映射错误引起的,但如果是这样的话,它应该总是在所有地方都出现。
我将不胜感激的任何帮助。
答案 0 :(得分:1)
好吧,我很尴尬,但也许这可以帮助其他人:真正的问题是这些机器中的防火墙。在某些情况下,Personal ZoneAlarm和其他Windows防火墙。它真的很有意义,因为嵌入二进制文件的响应应该被中断以保护客户端。