Я пытаюсь использовать службу WCF через приложение Silverlight 4 OOB.Сам сервис возвращает классы, состоящие только из примитивов (String, DateTime, int ...).Я размещаю его как веб-приложение в IIS.
Все классы и их свойства помечены [DataContract] и [DataMember], я добавил правильные конечные точки и т. Д. Итак, конфигурация в порядке, впо крайней мере, кажется.
Странно то, что мне приходится несколько раз пытаться на самом деле вызвать службу, прежде чем она заработает.При вызове из одного и того же проекта через модульный тест, он всегда работает с первого раза.
Когда я смотрю на ответ в Fiddler, я вижу чистый десериализованный XML без ошибок, так что это работает!Часть ответа:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Response xmlns="http://tempuri.org/">
<Number>82072826584</Number>
<Date>28/07/1982</Date>
<Sex>1</Sex>
</Response>
</s:Body>
</s:Envelope>
Однако в моем клиенте SL Результат содержит TargetInvocationException с InnerException (фрагмент):
{System.ServiceModel.CommunicationException: The remote server returned an error: NotFound.
---> System.Net.WebException: The remote server returned an error: NotFound.
---> System.Net.WebException: The remote server returned an error: NotFound.
at System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
TheСама ошибка содержит следующее (фрагмент):
{System.Net.WebException: The remote server returned an error: NotFound.
---> System.Net.WebException: The remote server returned an error: NotFound.
at System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
at System.Net.Browser.BrowserHttpWebRequest.<>c__DisplayClass5.<EndGetResponse>b__4(Object sendState)
Я включил исключения в конфигурации WCF, но это не делает различий в фактической отправке ошибки назад.Сначала я подумал, что, возможно, некоторые части не могут быть сериализованы из-за не-SL классов, но когда я продолжаю пробовать, это в конечном итоге работает ... Не имеет никакого смысла для меня.
Есть мысли?