отлов SocketException в socket.connectAysnc - PullRequest
1 голос
/ 08 февраля 2012

Я создаю приложение для WP7. И я работаю над установлением TCP-соединения

код

namespace TCP
{
   public class SocketEventArgsExtension : SocketAysncEventArgs
    {
      public EventHandler<SocketAysncEventArgs> _onConnectionCompleted;

      public OnCompleted(EventHandler<SocketAysncEventArgs> handler)
      {
         base.completed+=handler;
         _onConnectionCompleted=handler;
      }
    }
} 

 namespace TCP {
   public class TCPSocket: Socket
   {
       public TCPSocket():base(all arguments)         

       public bool ConnectAsync(SocketEventArgsExtension socketArgsExtension)
       {
         try{              
               if (!base.ConnectAsync(socketArgsExtension))
               {

         socketArgsExtension.SocketActionIfCompletedSynchronously(socketAsyncEventArgs);

               }
             }catch(SocketException e )
             {
                this.ConnectAsync(socketArgsExtension);
             }


        }

   }
}

namespace TCP
{
   public class connection
   {
     public void func()
     { 
        try
        {
           Socket s= new TCPSocket();
           var Socketargs= new SocketEventArgsExtension()  {RemoteEndPoint=_hostEntry};           //_hostEntry is DndEndPoint;
           socketArgs.Oncompleted((o,e)=>Somecallback(e));
           s.connectAsync(SocketArgs);
        }catch(Exception e)
        {
        }
    }
}

Задача

Теперь моя проблема: когда я передаю _hostEntry адрес сервера, который не существует, а затем пытаюсь отладить

Выдает исключение

System.IO.FileNotFoundException

с подробностями

{"Имя файла или сборки 'System.Net.debug.resources, Version = 2.0.5.0, Culture = en-US, PublicKeyToken = 7cec85d7bea7798e' или одна из его зависимостей не найдено."}

Теперь, когда я нажимаю продолжить

снова Исключение

Произошла исключительная ситуация System.Net.Sockets.SocketException Сообщение = попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, потому что подключенный хост не смог ответить ErrorCode = 10060 Трассировки стека: в System.Net.Sockets.Socket.DoWSAConnectOrSendTo (аргументы SocketAsyncEventArgs) в System.Net.Sockets.Socket.DoWSAConnectByName (аргументы SocketAsyncEventArgs) в System.Net.Sockets.Socket.WSAConnectByNameAsyncRequest.doRequest () в System.Net.Sockets.Socket.AsyncRequest.handleRequest () в System.Net.Sockets.Socket.SocketAsyncRequestManager.WorkerThread.doWork () в System.Net.Sockets.Socket.SocketAsyncRequestManager.WorkerThread.doWorkI (Object o) в System.Threading.ThreadPool.WorkItem.WaitCallback_Context (состояние объекта) в System.Threading.ExecutionContext.Run (ExecutionContext executeContext, обратный вызов ContextCallback, состояние объекта) в System.Threading.ThreadPool.WorkItem.doWork (Объект o) в System.Threading.Timer.ring ()

, хотя я перехватываю исключения, он не проходит через блок catch. Скорее выдает вышеупомянутые исключения в диалоговом окне.

Во время отладки я выбрал перерыв при возникновении исключения

1 Ответ

1 голос
/ 09 февраля 2012

После поиска причины ошибки некоторые форумы предполагают, что исключение filenotfound является ошибкой в ​​среде отладки Windows Phone 7.1 для сокетного соединения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...