2010-02-23 7 views
0

인사말, WPF에서 일부 응용 프로그램을 개발 중입니다. 클라이언트는 WPF, WCF의 서비스로 작성됩니다. 클라이언트가 서버에 연결을 끊는 경우가 있습니다 (인터넷 문제로 인해). 다음 그는 다음 오류가 있습니다. "통신 개체 인 System.ServiceModel.Channels.ServiceChannel은 오류 상태이므로 통신에 사용할 수 없습니다." 및 응용 프로그램 종료. 이 메시지가 표시되고 클라이언트가 메시지 상자에서 "확인"을 클릭하면 응용 프로그램이 닫힙니다. 나는 그것이 닫히기를 원하지 않는다. 어떻게해야합니까? 클라이언트가 새 버전을 검색하는 응용 프로그램을 실행할 때마다 ClickOnce 배포를 사용하면 도움이됩니다. 그것은 당신의 담요 예외 핸들러가 트릭을하고있는 것 같아 채널응용 프로그램이 서버 연결이 끊어져 닫힙니다.

try 
     { 

      Response response = Channel.ProcessRequest(request); 
      return response; 
     } 
     catch (Exception ex) 
     { 
       MessageBox.Show(ex.Message.ToString()); 
      return null; 
     } 
     finally 
     { 

     } 
+0

처리되지 않은 예외는 어떻게 처리합니까? – Anvaka

답변

1

를 만들 때 나는 다음과 같은 방법으로 예외를 처리하고있다. 오류를 포착하여 사용자에게 표시하고 있습니다. 그러나 null을 반환합니다. 다른 코드를 보지 않고서는 호출자가 처리되지 않은 예외가 예상 되더라도 null 응답 및 앱이 죽는 것을 인식하지 않는다고 추측 할 수 있습니다. 하지만 업스트림에서는이 예외를 자동으로 무시하는 또 다른 try/catch 블록을 가질 수 있습니다. 더 자세한 정보를 제공하지 않으면 아무도 당신에게 말할 수 없습니다.

관련 문제