У меня есть служба WCF (.NET 4), размещенная в IIS. Мой контракт на обслуживание имеет один метод с:
[FaultContract(typeof(string))]
Моя реализация сервиса для этого метода проверяет входные параметры и может выдать исключение, например:
if (string.IsNullOrWhiteSpace(siteName)) { throw new FaultException("siteName is required."); }
Пользовательская программа этого сервиса - консольное приложение .NET 2. В этом приложении я создал прокси-сервер веб-службы, щелкнув правой кнопкой мыши «Ссылки» и «Добавить веб-ссылку».
Когда я пытаюсь вызвать метод службы из клиентского приложения, отправив недействительное siteName, я получаю исключение 503 Служба недоступна вместо FaultException с пользовательским сообщением об ошибке.
Как заставить FaultException с пользовательским сообщением об ошибке распространяться на клиентскую программу?
UPDATE:
Исключение, которое я получаю в клиентском приложении, таково:
System.ServiceModel.ServerTooBusyException:
Служба HTTP, расположенная по адресу
http://www.example.com/services/myservice.svc
слишком занят ---> System.Net.Web
Исключение: удаленный сервер возвращен
ошибка: (503) сервер недоступен.
в
System.Net.HttpWebRequest.GetResponse ()
в
System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpCha
nnelRequest.WaitForReply (TimeSpan
тайм-аут) --- конец внутреннего исключения
трассировка стека ---