Приложение закрывается при потере соединения с сервером - PullRequest
0 голосов
/ 23 февраля 2010

Привет, Я разрабатываю некоторые приложения в WPF. Клиент написан в WPF, сервис в WCF. Есть случай, когда клиент теряет соединение с сервером (из-за проблем с интернетом). Тогда у него есть следующая ошибка: «Объект связи, System.ServiceModel.Channels.ServiceChannel, нельзя использовать для связи, поскольку он находится в состоянии Failed». и закрытие приложения. После того, как это сообщение показано, и клиент нажимает «ОК» в окне сообщения, приложения закрываются. Я не хочу, чтобы это было закрыто. Как я могу это сделать? Я использую развертывание ClickOnce, если это поможет, каждый раз, когда клиент запускает приложение, которое ищет новую версию. Я обрабатываю исключение следующим образом при создании канала

try
        {

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

        }

1 Ответ

1 голос
/ 23 февраля 2010

Похоже, ваш общий обработчик исключений делает свое дело. Вы ловите ошибку и отображаете ее пользователю. Тем не менее, вы возвращаете ноль. Не видя никакого другого кода, я могу только догадываться, что вызывающая сторона не ценит получение нулевого ответа, и приложение умирает, хотя я ожидаю необработанное исключение. Но вверх по течению у вас может быть еще один блок try / catch, который молча игнорирует это исключение. Никто не может сказать вам, если вы не предоставите более подробную информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...