Arhn - архитектура программирования

Silverlight, WCF и NotFound, о мой

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

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

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

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

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

23.11.2010

  • Привет, я знаю, что это старый пост, но у меня та же проблема. Удалось ли вам решить эту проблему? 15.03.2012

Ответы:


1

Вот несколько мыслей по упомянутым вами пунктам:

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

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

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

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

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

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

23.11.2010
  • 2) Я упомянул об этом, чтобы люди не говорили мне, что NotFound - это просто результат какого-либо исключения на стороне сервера. Я не получаю от этого ничего полезного. 3) Я бы по крайней мере ожидал увидеть вызов службы WCF, не так ли? 4) Насколько мне известно, да. Я вижу, что в этих журналах происходит много активности - просто ничего, что кажется имеющим отношение к моей проблеме. - Что меня беспокоит больше всего, так это то, что очень сложно гарантировать, что данные находятся в правильном формате, поскольку я не знаю, какие вызовы будут терпеть неудачу, прежде чем они это сделают, и Fiddler не помогает узнать, какие данные отправляются через провод. 23.11.2010
  • Да, и то, что это, видимо, началось из ниоткуда. Я уверен, что я или некоторые из моих коллег внесли изменения, но, похоже, сейчас это происходит повсеместно. Причем очень случайно. 23.11.2010
  • и Fiddler не помогает определить, какие данные передаются по сети - вот почему я сказал, что в этом сценарии он не может быть большим подспорьем. 23.11.2010
  • Но так и должно быть, поскольку он показывает данные для всех исправных соединений. Это заставляет меня думать, что сбой происходит до того, как устанавливается соединение. Может быть, какая-то ошибка поиска DNS. 23.11.2010

  • 2

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

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

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

    23.11.2010
  • В общем все работает. Приложение Silverlight может сделать сотни успешных операций, а затем внезапно выйти из строя с этим сообщением об ошибке. Я тестирую сервер VS dev, надеюсь, что после развертывания в IIS проблема исчезнет, ​​но даже тогда при разработке это неудобно. 25.11.2010

  • 3

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

    minFreeMemoryPercentageToActivateService="1" 
    

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

    minFreeMemoryPercentageToActivateService="5"
    

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

    27.01.2014
    Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..