Я использую Блок приложения проверки - Enterprise Library для проверки параметров, отправленных в мои операции службы WCF. Например, для определенной операции требуется, чтобы параметр был 1 или 6, например:
[OperationContract(Name="GetEmployeesByRegion")]
[FaultContract(typeof(ValidationFault))]
List<Employees> GetEmployeesByRegion([DomainValidator(1,6)]int regionId);
Это работает очень хорошо, т.е. ошибка проверки происходит, однако, когда служба вызывается клиентом, генерируется универсальное System.ServiceModel.FaultException. Сообщение указывает: «Создатель этого сбоя не указал причину.»
Теперь я мог бы проверить параметры самостоятельно перед вызовом службы и выдать пользовательскую ошибку, но это, похоже, противоречит цели проверки параметров на основе атрибутов с использованием блока приложения проверки. Есть ли в любом случае настроить ошибку, возвращаемую Ошибка проверки? Также возможно, что я делаю что-то совершенно не так. Я просто хочу, чтобы вызывающий абонент знал, что он / она должен был передать 1 или 6 в сообщении об исключении. Это возможно?