Silverlight, WCF и NotFound, о мой - PullRequest
       0

Silverlight, WCF и NotFound, о мой

1 голос
/ 23 ноября 2010

Я знаю, что это горячая тема в StackOverflow, но терпите меня.

У нас есть приложение Silverlight 3, разговаривающее со службой WCF. Время от времени вызовы службы WCF возвращают исключение NotFound.

Я читал почти все посты на SO и Google на эту тему, но я не могу понять, что происходит не так. Вот некоторые из моих выводов:

  • Исключение происходит при случайных вызовах и в случайные моменты. Иногда метод будет работать 50 раз, и внезапно он выйдет из строя. У меня есть ощущение, что это связано с тайм-аутом, так как это наиболее воспроизводимо, если я оставляю приложение на некоторое время бездействующим, прежде чем вызывать вызов, но это не всегда так - иногда один из первых вызовов в приложении завершается неудачей.
  • Мы используем SilverlightFaultBehavior для преобразования HTTP-кода ошибки в 200, и у нас есть много случаев, когда выдача исключения на стороне сервера на самом деле всплывает на стороне клиента, поэтому я могу подтвердить, что это должно работать должным образом.
  • Fiddler не показывает ничего особенного в момент возникновения исключения. Я даже не вижу этот звонок. Это беспокоит меня, но это может означать, что исключение является результатом вызова, который произошел несколько минут назад и истек срок ожидания?
  • Service Trace Viewer ничего не показывает.
  • Я присоединяю Visual Studio к проекту Silverlight и к проекту служб WCF, настраиваю отладку на разрыв для всех исключений (брошенных или обработанных), и он не прерывается (за исключением Silverlight, чтобы сообщить мне о проблеме NotFound). Это заставляет меня думать, что, возможно, NotFound не отвечает на исключение на стороне службы WCF?

Я действительно понятия не имею, куда идти отсюда. Любая помощь, любые указатели или идеи вещей, которые можно попробовать, приветствуются.

Ответы [ 3 ]

1 голос
/ 23 ноября 2010

Что такое привязка услуги?Где он находится: сервер развертывания IIS или VS?Я видел эту проблему недавно, что-то не так с IIS.Он не мог даже открыть * .svc файлы.Итак, вот план действий:

  1. Попробуйте открыть файл SVC, используя http-адрес, например http://localhost/MyApp/MyService.svc
  2. Если он откроется, напишите консольное приложение и протестируйте службу.*
  3. Если это работает, напишите простое приложение silverlight.

Надеюсь, это поможет.

1 голос
/ 23 ноября 2010

Вот некоторые соображения по поводу упомянутых вами точек:

1) Исключение происходит при случайных вызовах и в случайные моменты. Убедитесь, что данные, отправляемые в качестве возвращаемого значения метода, действительны.У меня был случай, когда отправка объекта с некоторыми пустыми свойствами вызвала сбой в сериализации.Я выяснил это, используя журналы IIS / Service Trace Logs.

2) Итак, вы нашли что-нибудь полезное?

3) Я не думаю, что fiddler может помочь с такой ошибкой.

4) Вы уверены в этом?Правильно ли вы настроили журналы трассировки?

5) Здесь вы не найдете исключений, которые могут вам помочь.Фактическое исключение (когда вы видите ошибку «Не найдено») возникает при переносе сообщения / данных со стороны сервера или при развертывании сообщения / данных на стороне клиента.

Итак, для подведения итогов убедитесь, что данные верныформат (может показаться правильным для вас, но не для WCF, просто поиграйте с ним некоторое время с другими значениями) и снова проверьте запись трассировки.

0 голосов
/ 28 января 2014

Я исправил это, добавив

minFreeMemoryPercentageToActivateService="1" 

в Web.config. По умолчанию это

minFreeMemoryPercentageToActivateService="5"

, который иногда вызывает эту ошибку.

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