2012-01-23 5 views
0

wchich가 소켓을 사용하여 여러 서버에 연결하는 응용 프로그램을 개발했습니다. 응용 프로그램은 WI-Fi 연결로 정상적으로 작동하지만 3g 연결에서 충돌합니다 (물론 실제 장치에서는 물론 에뮬레이터에서는 모두 정상적으로 작동 함). 나는 깨진 전화가 PC에 연결되어 있기 때문에 디버깅 할 수 없다. 이 문제를 어떻게 처리할까요? 미리 감사드립니다.3G를 사용할 때 응용 프로그램이 다운 됨

답변

2

Application.UnhandledException (UI 스레드 예외) 및 AppDomain.Current.UnhandledException (처리되지 않은 모든 예외) 구독하고 프로세스가 종료되기 전에 파일에 쓰려고 시도하십시오.

응용 프로그램이 충돌 한 후 ISETool 명령 줄을 사용하여 데이터를 컴퓨터로 다시 복사하십시오.

Application.Current.UnhandledException += (s,e) => 
    WriteExceptionFast(e.ExceptionObject, "ApplicationUnhandled"); 

AppDomain.Current.UnhandledException += (s,e) => 
    WriteExceptionFast(e.ExceptionObject, "AppDomainUnhandled"); 

private void WriteExceptionFast(Exception ex, String name) 
{ 
    string filename = Path.ChangeExtension(name, ".log"); 

    using (var store = IsolatedStorageFile.GetUserStoreForApplication()) 
    using (var stream = store.CreateFile(filename)) 
    using (var writer = new StreamWriter(stream)) 
    { 
     writer.WriteLine(ex.ToString()); 
     writer.Flush(); 
    } 
} 
1

먼저 예외를 잡아 읽어보십시오.

Secondy : 외부에서 액세스하지 못하도록 인트라넷 컴퓨터를 보호하는 방화벽으로 인해 소켓에 연결할 수 없게 될 것으로 예상됩니다.

관련 문제