Клиент WCF возвращает ошибку «Удаленный сервер возвратил ошибку: NotFound». - PullRequest
0 голосов
/ 20 декабря 2010

Я переношу приложение WPF в Silverlight. Мое приложение WPF обращается к веб-службе с помощью BackgroundWorker. Если при доступе к веб-службе возникает какая-либо ошибка, я получаю обширное сообщение об ошибке в моем обратном вызове, например

There was no endpoint listening at http://localhost:8080/services/registration
that could accept the message. This is often caused by an incorrect address or
SOAP action. See InnerException, if present, for more details.

В моем приложении Silverlight я обращаюсь к одной и той же веб-службе асинхронно, и теперь мои сообщения об ошибках не очень полезны, например:

 The remote server returned an error: NotFound.

Веб-сервис не изменился - я вижу ошибки, поступающие с сервера на Fiddler. Поэтому вопрос заключается в том, как получить более подробные сообщения об ошибках на клиенте Silverlight.

Мой обратный вызов в приложении Silverlight выглядит следующим образом (я получаю сообщение об ошибке из e.Error.Message):

private void AuthenticateUserCallback(object sender, AuthenticateUserCompletedEventArgs e)
{
    if (e.Error != null)
    {
        this.StatusMessage = e.Error.Message;
    }

    ...
}

1 Ответ

0 голосов
/ 20 декабря 2010

Это ограничение для стека браузера, из-за которого SL не может получить доступ к полному сообщению об исключении. Посмотрите на статью MSDN здесь Подход заключается в том, чтобы превратить исключение в значимые ошибки (что означает, что клиент всегда получит HTTP OK 200) и выполнить пользовательскую обработку исключений на стороне клиента.

...