0

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

在 Windows Azure 中部署 Unity3D

我对我的统一应用程序有点坚持。我刚刚在 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

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

非常感谢 !

4

2 回答 2

1

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

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

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

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

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

我只是根据问题描述在上面提出建议,所以请尝试让我知道它是否有效。

于 2012-05-25T17:07:35.060 回答
0

真奇怪。它不再使用 Uniweb,但在 www 类中构建它仍然给我 SecurityException: No valid crossdomain policy available to allow access。
我在 blob 存储中有我的 .unity3d(不是同一个域)

于 2012-05-26T21:48:55.240 回答