由于 Flashbuilder 不支持基于 https 的 WCF,我正在考虑使用 weborb 远程处理作为替代方案,但不确定如果它们位于不同的服务器上,flash 将如何知道 weborb 位置。查看了目标、源字段,但在 Flex 的 remoteObject 中并没有真正找到一个名为 url 的字段。有没有人做过类似的事情?
1 回答
我知道这是一个老问题,但我想我还是会回答。您可以通过 WebORB 将 WCF 服务公开给远程客户端(Flash、Flex)。WebORB 支持自托管和 IIS 托管的 WCF 服务。以下是两种型号说明的链接。
两份文件都解决了您的问题。以下是一种方法的示例:
从 Flex/AIR 调用自托管服务 Flex 和 AIR 客户端可以使用 RemoteObject API 调用使用 AMF 端点的自托管 WCF 服务上的方法。调用自托管 WCF 服务有两种方法。第一种方法需要较少的代码,但会创建对声明目的地和通道的配置文件(位于 WEB-INF/flex 中的文件)的依赖。第二种方法对配置文件没有任何依赖关系,但会产生一些额外的代码行。考虑下面的 API 示例:
方法1(依赖于配置文件):
var remoteObject:RemoteObject = new RemoteObject("GenericDestination");
remoteObject.endpoint = "http://localhost:8000/WCFAMFExample/amf" remoteObject.GetQuote.addEventListener(ResultEvent.RESULT, gotResult); remoteObject.GetQuote.addEventListener(FaultEvent.FAULT, gotError); remoteObject.GetQuote("名称");
端点 URL 唯一标识 WCF 服务。请注意 URL 末尾的 /amf,它是 AMF 端点所必需的。使用上面演示的方法,需要 RemoteObject 构造函数中的目标名称,但不使用它。因此,要使代码正常工作,必须使用额外的编译参数编译 Flex/AIR 应用程序:
-services "C:\Program Files\WebORB for .NET\4.0\web-inf\flex\services-config.xml"
我希望这有帮助。
ķ