2010-11-19 3 views
0

У меня есть клиентское серверное приложение. Клиенты регистрируют учетную запись на моем сервере. Дело в том, что мой сервер иногда терпит крах, и хотя у меня есть все, что связано с утверждением try-catch, я не получаю никакого сообщения.сбой клиент-серверных приложений

Сервер, который я внедрил, находится здесь: .

Неужели кто-нибудь столкнулся с такой катастрофой? Есть ли место, где я могу найти журнал ошибок для приложения?

Я отчасти отчаялся, поэтому ЛЮБЫЕ идеи были бы замечательными. Благодарю.

+0

и, кстати, я к переменным из нескольких потоков без использования заявления блокировки. Может ли это быть проблемой для аварии? – Alex

+0

Какая ошибка возникает при сбое сервера? Там должна быть трассировка стека, указывая на некоторую часть кода. Как только вы обнаружите это, покажите нам код, вызывающий проблему, если вы не нашли проблему самостоятельно. –

+0

нет, нет !! Это так странно ! Программа просто падает! Я ищу любую возможность. либо код сервера не работает, либо другой код, который я написал, имеет проблему – Alex

ответ

2

Приложение может сбой из-за необработанных исключений, даже если у вас есть все функции, завернутые в блок try-catch из-за многопоточных операций.

try 
{ 
    var t = new Thread(()=> 
     { 
      Thread.Sleep(5000); 
      throw new Exception(); 
     }); 
    t.Start(); 
    //t.Join(); 
} 
catch 
{ 
    //you can't deal with exception here 
    //even though you uncomment `t.Join` 
    //the application will crash even there is a try-catch wrapped 
} 
1

Если вы работаете в режиме отладки в Visual Studio, вы можете подумать о том, чтобы включить исключения CLR для пользовательского контроля. Я считаю, что они по умолчанию отключены, что иногда вызывает зависание приложений без отклика отладчика. This article on MSDN может представлять интерес.

2

Вы сохранили эту часть кода примера? Добавить Console.WriteLine сразу после улова ...

catch 
    { 
     //a socket error has occured 
     break; 
    } 
Смежные вопросы