0

今のところ、ここで提案されているように、WindowsAzureWebRoleでUnityWebPlayerアプリを実行しています。

Unity3DをWindowsAzureにデプロイする

私は自分のユニティアプリで少し立ち往生しています。アプリケーションをWindowsAzureにデプロイしました。詳細については、siteroot / 0/.unity3dにWebプレーヤーファイルがあります。

私はUniwebを使用して自分のWebロールと通信しています(.unity3dファイルが配置されているものと同じであるため、同じドメインです)

しかし、http://asp.netページにHttpPostを送信すると、の例外が発生しました: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.netwebroleと通信しない理由がわかりません。Windowsアプリを作成したときはうまく機能しましたが、Webプレーヤーでは失敗します。

どうもありがとう !

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が発生します。アクセスを許可するために使用できる有効なクロスドメインポリシーがありません。
.unity3dがblobストレージにあります(同じドメインではありません)

于 2012-05-26T21:48:55.240 に答える