目前,我正按照此处的建议在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.xmlxml version="1.0"
cross-domain-policy
allow-access-from domain="*" to-ports="1-65536"
cross-domain-policy
我不知道为什么我的Unity应用程序不与我的(同一)http://asp.net webrole通信。当我构建Windows应用程序但它使用网络播放器时,它运行良好。
非常感谢!
答案 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(不是同一个域)