2012-02-08 20 views
1

我正在为WP7构建应用程序。而我的工作etablishing一个TCP连接在socket.connectAysnc中捕获SocketException

代码

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,版本= 2.0.5.0,文化= EN-US,公钥= 7cec85d7bea7798e',或者一个其依赖的,没有被发现。“}

现在,当我点击继续

再次发生异常

System.Net.Sockets.SocketException发生 消息=连接尝试失败,因为连接方在一段时间后没有正确响应,或建立的连接失败,因为连接的主机未能响应 ErrorCode = 10060 StackTrace: at System.Net.Sockets.Socket.DoWSAConnectOrSendTo(SocketAsyncEventArgs args) at System。 Net.Sockets.Socket.DoWSAConnectByName(SocketAsyncEventArgs args) at System.Net.Sockets.Socket.WSAConnectByNameAsyncRequest.doRequest() at System.Net.Sockets.Socket.AsyncRequest.handleRequest() at System.Net.Sockets.Socket .SocketAsyncRequestManager.WorkerThread.doWork() at System.Net.Sockets.SocketAsocketRequestManager.WorkerThread.doWorkI(Object o) at System.Threading.ThreadPool.WorkItem.WaitCallback_Context(Object state) 在System.Threading.ExecutionContext.Run(的ExecutionContext的ExecutionContext,ContextCallback回调,对象状态) 在System.Threading.ThreadPool.WorkItem.doWork(对象O) 在System.Threading.Timer.ring()

虽然我捕获异常,它不通过catch块。相反,在对话框中提示上述异常。

在调试时,发生异常时

+0

当按下继续按钮时,第二个异常是否会转到您的catch块? – jgauffin 2012-02-08 16:21:55

+0

@jgauffin不,不 – rakesh 2012-02-08 21:42:01

回答

1

寻找错误的原因后,我选择了休息一些论坛表明filenotfound的例外是套接字连接中的Windows Phone 7.1的调试环境中的错误。