私はSL4を使用しているSilverlightクライアントと.NET 4を使用しているC#サーバーを持っています。サーバーは、クライアントが接続しようとしているポート4525を開きます。今度は次のコードを読んでもらうことを頼むことができれば、コードを投稿する必要がなくなります。Silverlightソケットポリシーファイルが機能しないのはなぜですか?
クライアントはサーバーへの接続を試み、ポリシーファイルの接続を開き、要求ポリシーファイルを返し、ポリシーファイルを返します。起こっていないことは、クライアントのonConnectイベントです。ポリシーサーバーを実装する前に、クライアントは4525に接続してonConnectイベントを実行しますが、ポリシーサーバーがないためすぐに失敗します。これで、ポリシーサーバーを実装したので、配信の完了を検出することはできません。ここ
送信要約である:事実
Client:
<policy-file-request/>
Server:
<?xml version="1.0" encoding ="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from>
<domain uri="*:4525" />
</allow-from>
<grant-to>
<socket-resource port="4525" protocol="tcp" />
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
。私が答えようとしている唯一の質問は、私が自分のポリシーファイルから何かを逃しているか、クライアントが配信を検出するために、クライアントへの送信を特定の方法で完了する必要があるかどうかです。
Things of note:
The Client successfully establishes its connection to the policy server
The policy server successfully writes the policy back to the client
The 'real' servers port is successfully opened
The client 'can' connect to the 'real' server
ありがとうございました。誰かが助けてくれると確信しています。
コード要求 クライアント接続それが答えを見つけるに向けた任意の更なる結果のだということを
わかりません。しかし:
private static DnsEndPoint IP_END_POINT = new DnsEndPoint("192.168.0.36", 4525, AddressFamily.InterNetwork);
public MainPage()
{
try
{
InitializeComponent();
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
SocketAsyncEventArgs connectEventArgs = new SocketAsyncEventArgs();
connectEventArgs.RemoteEndPoint = IP_END_POINT;
connectEventArgs.Completed += new EventHandler<SocketAsyncEventArgs>(ConnectionEstablished);
socket.ConnectAsync(connectEventArgs);
}
catch (Exception e)
{
}
}
新開発'接続が確立さ' 火災!
私は1分程度の時間が必要な場合は、私の 'ConnectionEstablished'イベントが最終的に発生します。しかし、私がそれから得ることは、それほど奨励的ではありません。
「AccessDenied」のSocketErrorと「アクセス許可で禁止されている方法でソケットにアクセスしようとしました」というメッセージが表示されました。予想通り、私のサーバーは接続。私は、サーバーがポートを開いていることを知っており、接続を受け付けることができるので、これは非常に複雑なシナリオです。
誰もが助けてくれてありがとう。
Silverlightアプリケーションをサーバーに接続するために使用しているシステムがわからなければ、難しいと言えます。 – Trisped
「システム」とは何を意味していますか?私はWindows 7環境、クライアントとサーバーで動作しています。 Chromeはクライアントを実行しています。 Serverは、Policy Serverと 'Real' Serverの両方のTcpListenerを開きます。 – DigitalJedi805
他に何を知りたいですか? – DigitalJedi805