Отчет об ошибках в службе WCF?

У меня есть собственная служба Net Tcp WCF, и у меня есть следующий метод

        Subscribtion GetSubscribtion(int subscribtionId)
        {
            Subscribtion s;
            if (_subscribtionTable.TryGetValue(subscribtionId, out s) == false)
            {
                Console.WriteLine("Not Found SessionID");//for debugging
                throw new ArgumentException("Invalid Subscription Id");
            }
            return s;
        }

Является ли создание исключения хорошей практикой для сообщения об ошибках в программировании службы?


person Ahmed Said    schedule 14.06.2009    source источник


Ответы (2)


Вместо этого в WCF вы должны определять и генерировать исключение FaultException. В следующих статьях приведены примеры и подробности:

person mundeep    schedule 14.06.2009

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

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

Марк

person marc_s    schedule 14.06.2009
comment
Но это служба net tcp, поэтому я уверен, что все клиенты являются приложениями .Net. - person Ahmed Said; 15.06.2009
comment
Сейчас - да - а что насчет завтра? - person marc_s; 15.06.2009
comment
И зачем начинать использовать неправильный подход, если вы уже знаете, что такое правильный подход? Вы просто столкнетесь с проблемами когда-нибудь в будущем..... - person marc_s; 15.06.2009