我已经用 c# 开发了一个服务器应用程序和一个带有 flash 动作脚本 3.0 的客户端应用程序。从浏览器调用时 Flash 套接字请求策略文件并显示消息
<policy-file-request/>
到目前为止一切正常。我的服务器正在等待此消息并向客户端发送一个策略文件字符串,如下所示:
public const String POLICY_FILE = "<?xml version=\"1.0\"?>\n" +
"<!DOCTYPE cross-domain-policy SYSTEM \"http://www.adobe.com/xml/dtds/cross-domain-policy.dtd\">\n" +
"<cross-domain-policy>" +
"<allow-access-from domain=\"*\" to-ports=\"*\" />" +
"</cross-domain-policy>\u0000";
这个字符串是这样发送的:
if (message.Contains("policy-file-request"))
{
client.Send(Encoding.ASCII.GetBytes(Statics.POLICY_FILE));
return;
}
我很确定这是有效的,但我真的不知道发生了什么并且开始不起作用。当 flash 客户端从服务器接收到此消息时,连接成功,一切正常。但是现在 Flash 客户端等待 20 秒(Flash 套接字超时)并抛出安全异常
[SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048"]
我被困住了,无法前进。我正在监听端口 963,服务器机器的完全限定名称是“mypc.domain.local”,可以通过我的网络访问。这台机器上还运行着一个 IIS,Flash 应用程序托管在这里。
http://mypc.domain.local:90/page.html
就是这样,我调用我的 Flash 应用程序并
mypc.domain.local:963
是服务器运行的地址。我也在这台机器上工作。我尝试调用该页面http://localhost:90/page.html
,或者http://127.0.0.1:90/page.html
尝试将服务器连接为 localhost:963 或 127.0.0.1:963。每个组合的结果相同。
这里有什么问题?什么可能会导致我的工作代码崩溃?
谢谢。