0

FluorineFx を使用して、同じ名前の AS3 クラス (Flex) にマップされた C# クラス 'Digital' で非常に奇妙な動作をしています。

このクラス (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 に答える