Я не видел необходимости обновлять свои службы до WCF, но я уже некоторое время использую клиенты WCF для доступа к службам ASMX из .NET 3.5 ASP.NET. Я подумал, что в конечном итоге я столкнулся со стеной в этом несоответствии, и я только что сделал - но с Silverlight.
При использовании Silverlight для доступа к веб-службам ASMX во всплывающем окне появляется следующая ошибка:
Исключение произошло во время
операция, делающая результат недействительным.
Проверьте InnerException на исключение
подробности.
Если я отлаживаю, я получаю эту ошибку:
The remote server returned an error: NotFound.
Если я посмотрю в Fiddler, исключение / ошибка там просто замечательно:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body><soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>Server was unable to process request. ---> ID does not match</faultstring>
<detail /></soap:Fault></soap:Body></soap:Envelope>
Как мне на самом деле добраться до этого исключения в клиенте Silverlight.
Мне нужно, чтобы ошибка была доступна во время выполнения с без fiddler и без отладчика .
Существует свойство includeexceptiondetailinfaults
, которое принадлежит в <behaviors>
в файле web.config - но это, насколько я могу судить, только для серверной части.
Правильно ли я полагаю, что мне нужно будет преобразовать asmx
в svc
, чтобы иметь возможность получить фактические данные об исключениях в клиенте silverlight?