2012-01-23 4 views
0

Я разработал приложение, использующее сокеты для подключения к нескольким серверам. Приложение отлично работает с WI-Fi-соединением, но сбой при подключении 3g (конечно, на реальном устройстве, на эмуляторе все работает нормально). Я не могу отладить его из-за того, что он работает. Wken телефон подключен к ПК. Как справиться с этой проблемой? Заранее спасибоСбой приложения при использовании 3G

ответ

2

Подпишитесь на Application.UnhandledException (для исключений потоков пользовательского интерфейса) и 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: Я ожидаю, что вы столкнулись с тем, что не можете подключиться к сокетам из-за того, что брандмауэры, защищающие машины интрасети, не доступны извне.

Смежные вопросы