Unity3D Azure Access和Crossdomain

时间:2012-05-25 08:22:01

标签: azure unity3d

目前,我正按照此处的建议在Windows Azure WebRole中运行Unity Web Player应用程序。

Deploy Unity3D in Windows Azure

我的团结应用程序有点困难。我刚刚在windows azure上部署了我的应用程序。有关详细信息,我的网络播放器文件位于siteroot / 0 / .unity3d

我使用Uniweb与我的网络角色进行通信(与.unity3d文件所在的角色相同,因此,它是相同的域名)

但是当我将HttpPost发送到我的http://asp.net页面时,我遇到了这个异常:SocketPolicyClient1:Incoming GetPolicyStreamForIP

SocketPolicyClient1: About to BeginConnect to x.x.x.x:843

SocketPolicyClient1: About to WaitOne

SocketPolicyClient1: WaitOne timed out. Duration: 3002.1718

SocketPolicyClient1: Caught exception: BeginConnect timed out

Exception: Unable to connect, as no valid crossdomain policy was found

但我有一个位于siteroot / 0 /

的crossdomain.xml
xml version="1.0"

cross-domain-policy

allow-access-from domain="*" to-ports="1-65536"

cross-domain-policy

我不知道为什么我的Unity应用程序不与我的(同一)http://asp.net webrole通信。当我构建Windows应用程序但它使用网络播放器时,它运行良好。

非常感谢!

2 个答案:

答案 0 :(得分:1)

根据以上日志,我怀疑你在角色启动时没有正确绑定端口。要完成,您需要以下内容:

将以下端点添加到Azure应用程序:

<Endpoints>
 <InputEndpoint name="Unity3DPort843" protocol="tcp" port="843" />
</Endpoints>

在您的Role OnStart()方法之后,您需要执行以下操作以开始侦听该端口:

TcpListener Unity3DPortListener = new TcpListener(RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["Unity3DPort843"].IPEndpoint);
Unity3DPortListener.Start();

我只是基于问题描述建议以上所以请尽量让我知道它是否有效。

答案 1 :(得分:0)

很奇怪。它不再使用Uniweb,而是在www类中构建,它仍然给我SecurityException:没有可用的有效跨域策略允许访问。
我在blob存储中存在.unity3d(不是同一个域)