Silverlight -> WCF -> База данных -> проблема - PullRequest
1 голос
/ 20 января 2010

У меня есть некоторый код silverlight, который вызывает службу WCF, которая затем использует Entity Framework для доступа к базе данных и возврата записей.

Все работает нормально, но ... когда я заменяю код Entity Framework на классический ADO.NET code Я получаю сообщение об ошибке:

Удаленный сервер возвратил ошибку: NotFound

Когда я вызываю код ADO.NET напрямую с помощью модульного теста, он возвращает записихорошо, так что это не проблема с кодом ADO.NEt

Я использовал Fiddler и кажется, что служба не может быть найдена с ошибкой "500".

Я не думаю,это как-то связано со службой, так как единственное, что я изменяю, это технология доступа к базе данных.

Кто-нибудь знает, что мне здесь не хватает?

Ответы [ 4 ]

0 голосов
/ 11 августа 2010

попробуйте добавить

HttpWebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);

к событию запуска приложения приложения Silverlight.

Это должно дать вам подробную информацию о реальной ошибке, а не о NotFound.В моем случае мне не хватало файла clientaccesspolicy.xml, созданного для междоменных запросов.

Как: указать обработку HTTP браузера или клиента

0 голосов
/ 20 января 2010

Джон Папа написал отличную статью из журнала MSDN Производительность данных и стратегии устранения ошибок в Silverlight 3 , в которой объясняется эта проблема и предлагается решение. Из-за ограничений браузера код ошибки 500 не маршрутизируется должным образом. Его решение изменяет исходящее сообщение HttpResponse обратно на 200 для всех ответов Silverlight 500.

0 голосов
/ 09 апреля 2010

Если вы все еще застряли, вы можете попробовать позвонить в службу с машины, на которой размещена служба.IIS по умолчанию возвращает гораздо больше информации о том, что могло пойти не так, когда вызов поступил с локального компьютера.(Я верю, что это можно изменить, но точно не знаю.)

0 голосов
/ 20 января 2010

«NotFound» - это общее сообщение об ошибке, которое может означать что угодно.Если вы абсолютно уверены, что вы не изменили интерфейс службы, то вероятным кандидатом является исключение, которое выдается из вашего сервиса.Вы уверены, что тип коллекции, содержащий данные, которые вы пытаетесь вернуть, не изменился, то есть с List< OfSomthing> до List< OfSomethingElse>?

В любом случае, я нашел что-то бесценное для отслеживания такого родапроблема заключается в инструменте Service Trace Viewer от Microsoft.Прочитайте все об этом прямо здесь , все, что нужно, это внести некоторые простые изменения в ваш файл web.config, чтобы включить ведение журнала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...