У меня есть метод веб-службы, в котором я хотел бы создать некоторые пользовательские исключения, например. SomeException, SomeOtherException и т. Д., Которые веб-служба затем превратит в ошибку SOAP, которую клиент сможет обработать. В Java я могу иметь элементы wsdl: fault внутри элемента wsdl: operation в WSDL. Похоже, что это .NET, для которой это не обслуживается, и что нет способа поместить атрибуты в WebMethod, чтобы показать, какие ошибки SOAP могут возникнуть.
Если я создам веб-службу Java, которая имеет элементы wsdl: fault, и добавлю веб-ссылку на проект .NET, я бы ожидал, что элементы wsdl: fault вызовут создание правильно названных исключений так же, как создаются другие объекты, однако это похоже, что это не так.
Это тот случай, когда элементы wsdl: fault в WSDL полностью игнорируются .NET? Они являются частью спецификации WSDL, определенной на http://www.w3.org/TR/wsdl так что это было не то поведение, которого я ожидал.
В этом случае возможными обходными решениями могут быть возвращение объекта результата, который содержит логическое значение успеха / неудачи и сообщение / перечисление об ошибке. Или с помощью SoapExceptions. Если я решу использовать SoapExceptions, я возлагаю на пользователя моего веб-сервиса особую ответственность за их обработку и правильную десериализацию. Оба эти способа не кажутся отличным способом решения этой проблемы и добавляют дополнительные проблемы и код для их решения.
Любой совет?