最近不少网友反映使用Fluorine实现Flex与.NET通信老是出错,原因肯定不一样,为节约时间,我想有必要整理一下Flex RPC常见错误。此处先整理一下Flash Remoting方面的,后续会加上HTTP Service和Web Service的。
一、Flex Remoting
- Channel definition, mx.messaging.channels.RTMPChannel, can not be found...:最新版的Fluorined在services-config.xml中新增了RTMP Channel,主要是用来配 置Flex Messaging,编译时需要FDS.swc支持,当然如果不需要此功能可以注释掉channel-definition这个节点。
- RPC Fault faultString="The requested type... is not accessible":Flash Remoting服务名不对。详见Flash Remoting支持的远程服务。
- RPC Fault faultString="Could not find a suitable method with name ..." :找不到对应的方法。首选看方法名对不对,再看方法的参数个数, 参数类型,还要检查返回数据的类型。关于数据的类型详见Flex AS3数据类型转换成Fluorine数据类型和 Fluorine .NET数据类型转换成Flex AS3数据类型。
- NetConnection.Call.Failed: HTTP: Status 404: url...: '虚拟主机的域名/子目录/Gateway.aspx'":没将Root URL设置为虚拟主机的域名。详见Flex Bulider 2与Flash cs3的发布文件 。
- RPC Fault faultString="Send failed" faultCode="Client.Error.MessageSend" faultDetail="Channel.Connect.Failed errorNetConnection.Call.Failed: HTTP: Status 404: url: 'http://localhost/Gateway.aspx...'": Root URL中包含的Context与Context root中设置的不一致。
- [RPC Fault faultString="Send failed" faultCode="Client.Error.MessageSend" faultDetail="Channel.Security.Error error Error #2048...: 安全沙箱冲突
- RPC Fault faultString="MessagingError message='Destination 'fluorine' either does not exist or the destination has no channels defined (and the application does not define any default channels.)'" faultCode="InvokeFailed" faultDetail="Couldn't establish a connection to 'fluorine'"...:FluorineFX没配置或destination 没有定义channels(默认是fluorine),详见配置支持Fluorine Remoting的Web应用
- ReferenceError: Error #1056: 无法为 ...创建属性...:当使用[RemoteClass(alias="XXX")],客户端与服务器端Value Object映射时属性名不一 致。
二、Http Service
- faultCode:Server.Proxy.Request.Failed faultString:'HTTP/1.1 404 Not Found' faultDetail:'HTTP/1.1 404 Not Found':url错误。
- faultCode:Channel.Security.Error faultString:'Security error accessing url' faultDetail:'Destination: DefaultHTTP':不使用代理时遇到 安全沙箱冲突。
- The URL specified XXX is not allowed by the selected destination 'DefaultHTTP:使用默认终端代理时遇到安全沙箱冲突。
- No destination with id XXX is registered with any service/MessagingError message='Destination 'students' either does not exist or the destination has no channels defined (and the application does not define any default channels.)':.使用命名终端代理时,destination不一致。