Служба WCF требует нескольких попыток для правильной работы в приложении Silverlight OOB - PullRequest
0 голосов
/ 21 октября 2011

Я пытаюсь использовать службу 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 классов, но когда я продолжаю пробовать, это в конечном итоге работает ... Не имеет никакого смысла для меня.

Есть мысли?

...