2012-02-08 51 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的調試環境中的錯誤。