2012-03-31 3 views
1

после 2 дней попытки выяснить, почему моя служба не работает. Наконец, я нашел причину. Каждый раз, когда я пытаюсь бросить новый FaultException<AuthenticationException>, сервер на самом деле не бросает это, а сам ловят.Служба WCF бросает странное исключение

Так что происходит, когда я бросаю исключение, сервер сбой с необработанным System.ServiceModel.FaultException 1`.

Вот мой собственный класс исключений:

[DataContract] 
public class AuthenticationException 
{ 
    private string validationError; 

    [DataMember] 
    public string ValidationError 
    { 
     set { validationError = value; } 
     get { return validationError; } 
    } 

    public AuthenticationException() 
    { 

    } 

    public AuthenticationException(string valError) 
    { 
     validationError = valError; 
    } 
} 

И мой интерфейс:

[ServiceContract] 
public interface IAuthenticator 
{ 
    [OperationContract] 
    [FaultContract(typeof(AuthenticationException))] 
    Account authenticateApplication(string userName, string Password); 

Что может привести к этому?

Edit: Это, как я бросаю исключение:

  catch (Exception) 
      { 
       throw new FaultException<AuthenticationException>(new AuthenticationException("There was a general error during the process."), new FaultReason("Error")); 
      } 
+0

когда, как вы выбрасываете исключение? как происходит сбой сервера? – surfen

+0

Сервер разбился, отправив обратно 500 внутренних ошибок сервера. Это связано с тем, что он обнаружил необработанную System.ServiceModel.FaultException1', как я объяснил выше. – TheGateKeeper

+0

как вы проводите обслуживание? IIS? – surfen

ответ

1

Может быть, ваш сервер IIS не настроен для прохождения исключения клиента.

Следуйте шагу 2 «Включите подробные ошибки для удаленных клиентов». от this post

+0

Не могу поверить, что все было так просто. Почему эта информация так трудно найти? Я никогда не видел упоминания нигде, что мне нужно, чтобы пользовательские ошибки для исключений работать! – TheGateKeeper

+0

ссылка не работает – JGilmartin

+0

ссылка обновлена. Спасибо @JGilmartin – surfen

Смежные вопросы