Как реализация службы WCF должна обрабатывать ошибки / сбои без привязки к FaultContract - PullRequest
0 голосов
/ 24 сентября 2010

Я понимаю концепцию Fault Contracts в WCF, но, похоже, они тесно связаны с WCF и SOAP в частности. Я создал набор служб, которые отделены от определений контракта, и реализации могут использоваться разными способами, а не только WCF / SOAP. Например, если я хотел создать службу RESTful или просто использовать реализацию служб непосредственно из приложения.

Но сейчас я работаю над обработкой ошибок, и кажется, что как только я ввожу FaultContract и FaultException в код сервиса, я теперь тесно связан с сервисами SOAP. В моем случае SOAP является целевым проводным форматом прямо сейчас, и поэтому я хочу вызвать ошибку SOAP.

Какие методы люди используют в WCF для создания сбоев SOAP, но не связывают реализацию с FaultContract?

Ответы [ 2 ]

3 голосов
/ 24 сентября 2010

Используйте FaultContract в операциях, если вы хотите вызвать ожидаемое исключение.Вы получите небольшой набор FaultContracts, используемых в вашей деятельности.Когда вам нужно добавить конечную точку, отличную от SOAP, вы можете использовать реализацию IErrorHandler в пользовательском поведении конечной точки и конвертировать выданные исключения FaultException в нужный вам формат. Здесь у вас есть пример JSON.

1 голос
/ 24 сентября 2010

Чтобы отделить обработку ошибок от реализации вашего сервиса, попросите ваш сервис реализовать IErrorHandler.Это позволяет вам добавлять стандартные исключения .NET в ваш сервисный код.Поведение IErrorHandler переводит их в сбои SOAP на уровне сервиса.

В Интернете множество примеров.Больше всего мне нравится здесь , потому что на самом деле я совершил ту же ошибку с ошибками, которые он указал, как исправить.

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