Silverlight Socket.ConnectAsync метод никогда не вызывает событие Completed - я использую 127.0.0.1:4510. Я настроил IIS для обслуживания файла clientaccesspolicy.xml на порту 943.
Я использую следующий код:
SocketAsyncEventArgs args = new SocketAsyncEventArgs();
//args.UserToken = tcp;
args.RemoteEndPoint = ep;
args.Completed += new EventHandler<SocketAsyncEventArgs>(OnConnect);
mrEvent.Reset();
bool x = tcp.ConnectAsync(args);
mrEvent.WaitOne();
private void OnConnect(object sender, SocketAsyncEventArgs e)
{
isConnected = (e.SocketError == SocketError.Success);
mrEvent.Set();
}
Метод OnConnect никогда не вызывается и, как результат, блокирует код из-за метода WaitOne.
Примечание. Этот код выполняется в фоновом потоке, поэтому из-за вызова WaitOne нет взаимоблокировки.