Как бросить исключение на веб-сервис в .net с пользовательским сообщением - PullRequest
0 голосов
/ 18 ноября 2009

Как создать пользовательское исключение в веб-службе C #, чтобы flex считал ошибку по ошибке?

Я пытался просто вызвать исключение, подобное этому

throw new Exception("invalid key");

Но FaultEvent не смог декодировать сообщение в flex.

Редактировать: Что я действительно хочу сделать, так это чтобы flex различал исключения в веб-службе, например, чтобы узнать, является ли исключение ошибкой подключения к базе данных или недопустимым ключом в ошибке заголовка

Ответы [ 3 ]

2 голосов
/ 18 ноября 2009

Не уверен, но это может помочь; Джефф Этвуд говорит, что .NET не создает очень хорошие исключения SOAP .

1 голос
/ 31 декабря 2009

В веб-сервере .net вы можете определить свой собственный класс SoapExtention и переопределить функцию ProcessMessage. На этапе "SoapMessageStage.BeforeSerialize" вы можете использовать следующий код для изменения кода состояния http:

                    HttpContext currrentContext = HttpContext.Current;
                    currrentContext.Response.StatusCode = 200;

Mike

1 голос
/ 18 ноября 2009

Вам нужно каким-то образом заставить веб-сервер .net возвращать обычный ответ об исключении мыла, но с использованием HTTP-кода 200 вместо 500 (стандарт). Это связано с тем, что когда сервер отвечает 500, браузер удаляет всю полезную информацию, прежде чем сообщить подробности плагину Flash Player. На Java вы можете просто сделать это с помощью фильтра, но я не уверен, как это сделать в .net

...