Как показать информацию об ошибке в веб-методах? - PullRequest
1 голос
/ 19 октября 2010

У меня есть веб-сервис ASMX, и у меня есть пара методов, которые в своей первоначальной реализации имели тип возврата bool.

Что бы правильно вернуть клиенту ошибку? В настоящее время они просто возвращают false. Есть ли способ вернуть более сложный тип, который сообщал бы клиенту о проблеме, такой как нулевое значение, переданное для обязательного параметра?

Ответы [ 4 ]

2 голосов
/ 19 октября 2010
  • Способ сделать это с помощью SOAP - вернуть сообщение о сбое SOAP.
  • К сожалению, веб-сервисы ASMX должным образом не поддерживают сообщения об ошибках SOAP.

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

Помните, что что бы вы ни делали, ваши клиенты должны будут знать, что вы делаете это. Одна из проблем, связанных с поддержкой отказов ASMX, заключается в том, что информация о том, какая операция отправляет, какая ошибка не передается в WSDL, поэтому клиент не будет знать, что вы возвращаете ошибки.

0 голосов
/ 19 октября 2010

Конечно, вы можете создать объект, который имеет bool, если он пройден или нет, и строку, которая представляет сообщение. Потребители веб-службы будут иметь доступ к этому объекту так же, как и исходный bool.

0 голосов
/ 19 октября 2010

Я думаю, вы ищете Класс SoapException

0 голосов
/ 19 октября 2010

Если вы имеете дело со службой .NET клиенту .NET, вы можете передать эти данные в виде исключения, просто добавьте их в свой метод, вызываемый в службе.Если вы имеете дело с различными технологиями, вы все равно можете сделать это до некоторой степени, создав исключение в методе WS, однако вы не получаете такое переплетение, как при использовании WCF / .NET или Axis2 / Java с обеих сторон.например.

...