Судя по сообщению об ошибке, возможно, служба WCF не найдена по URL-адресу, указанному в клиенте Silverlight.Это также может означать, что в службе WCF произошел сбой.
Существует два основных способа устранения проблем WCF, таких как:
1) Использование Fiddler для отслеживания трафикамежду клиентом silverlight и сервисом WCF.Часто будет отображаться более подробная информация, такая как точный URL-адрес, который используется, и ответы IIS, которые в противном случае показываются клиенту WCF как недействительные ответы.
2) Включите детальную трассировку WCF, добавив в свою сеть следующий блок.Раздел конфигурации config:
<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true">
<listeners>
<add name="traceListener"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="c:\log\WebTrace.svclog" />
</listeners>
</source>
</sources>
</system.diagnostics>
После воспроизведения ошибки, дважды щелкнув по указанному имени файла, отобразится приложение просмотра журнала WCF, которое можно использовать для детализации возникающих ошибок.Это особенно полезно при решении проблем с сериализацией.
Обновление
На основе выходных данных fiddler (HTTP-ответ 500) служба WCF выдает исключение. Вот некоторая информация от Microsoft о сбоях в службах WCF и способах их устранения.
Следующим шагом должно быть включение трассировки WCF, как показано в пункте 2 выше, а затем проверка выходных данных.,Вы также можете проверить журналы событий Windows на наличие проблем, но я подозреваю, что вы их не увидите.
Я также настоятельно рекомендую обернуть тело каждого метода службы WCF в оператор try / catch, чтобы вы могли разумно ловить и сообщать об ошибках в своем коде, а не пытаться распространять их обратно клиенту WCF, по крайней мерепока вы не разобрались с перегибами.
Если вы хотите, чтобы сбои передавались обратно клиенту WCF, вы должны декорировать методы интерфейса атрибутом FaultContract , т.е.
[FaultContract(typeof(WCFException))]