Где / как локализовать исключения, возникающие в веб-сервисе? - PullRequest
2 голосов
/ 28 апреля 2009

Допустим, у меня есть веб-сервис, который возвращает коллекцию изображений на основе переданного пользователя. Теперь я вызываю веб-сервис с недействительным пользователем. Вызов выдает UnauthorizedAccessException с сообщением о том, что пользователь не авторизован для получения коллекции.

Я хочу, чтобы это сообщение было локализовано. Где я могу локализовать это сообщение на стороне клиента на основе кода ошибки? Или я передам в метод параметр «language»? Использую ли я коды состояния HTTP, чтобы клиент мог локализовать сообщение?

1 Ответ

2 голосов
/ 28 апреля 2009

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

Вы должны бросить исключения в сервис. Эти исключения будут превращены в ошибки SOAP. На клиенте они будут отображаться как исключения (по крайней мере, для клиентов .NET). Если вы решите отобразить свойство Message этих исключений, это ваше дело. Если вы решите отобразить его, то вы также можете его локализовать - на клиенте.

Учтите - в противном случае вы должны сообщить службе культуру клиента, просто чтобы служба могла отправить локализованный текст обратно клиенту. Лучше просто хранить эту информацию на клиенте.

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