Я не видел необходимости обновлять свои службы до 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.
Мне нужно, чтобы ошибка была доступна во время выполнения при отсутствии скрипачей и без отладчик.
Существует свойство includeexceptiondetailinfaults
, которое принадлежит <behaviors>
в web.config - но это только для стороны сервера, насколько я могу судить.
Правильно ли я предполагаю, что мне нужно будет преобразовать мой asmx
в svc
, чтобы иметь возможность получать фактические данные об исключении в клиенте silverlight?