我开发了一个小的flex应用程序,它执行一些Web服务调用,检索一些数据并将数据返回给应用程序。
只要我在Flex Builder(eclipse)中工作,或者只要我从ProjectName \ bin-debug运行它,一切正常。
一旦我尝试部署它(从ProjectName \ bin-release或在Web服务器上运行它)它就会停止工作,我收到一条错误说明: - 无法加载WSDL。如果当前在线,请验证WSDL的URI和/或格式(http://127.0.0.1/TimeSheet/TimeSheets.wsdl)
我创建了一个跨域文件,我认为是正确的,并将其放在IIS C的根文件夹中:\ inetpub \ wwwroot(我也只是安全地将文件复制到C:\ inetpub和C:\的Inetpub \ wwwroot的\的TimeSheet)
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*"/>
<site-control permitted-cross-domain-policies="master-only"/>
<allow-access-from domain="*" secure="false"/>
<allow-http-request-headers-from domain="*"/>
</cross-domain-policy>
我也在阅读互联网后尝试修改编译属性 项目 - &gt;属性 - &gt; Flex编译器通过将-use-network =属性更改为true和false以及-debug属性。
我相信如果我能让bin-release工作,那么一切都会有效。
有什么区别?
答案 0 :(得分:1)
@Amarghosh 我尝试过localhost和127.0.0.1以及服务器名称
@Jeff 是的,它的工作原理
好的,我还有更多信息。我已经发现它在bin-debug文件夹而不是bin-release文件夹中工作的原因是因为在bin-debug文件夹中,app在localtrusted中运行
安全沙箱类型(sandBoxType.text = Security.sandboxType.toString())
bin-release文件夹在localwithfile或localwithnetwork中运行(取决于设置了-use-network属性)
要使它在bin-release文件夹中工作,我所要做的就是将它添加到flash player中的可信站点。
太棒了...除了必须在网络服务器上运行,以便人们可以在我们的本地网络上访问它。从我所看到的当从“web”访问swf文件,即不是PC上的本地文件时,它总是以远程沙盒类型运行,并且当在远程沙箱类型中运行时,它给出了与上面相同的错误。
因此,在远程沙盒类型中运行时,我必须遵循一些特殊规则以允许我的小应用程序访问wsdl吗?