2014-02-09 3 views
0

Я создал службу отдыха с использованием wcf. Я пишу код структуры Entity в рамках метода службы для извлечения данных из базы данных.Метод обслуживания, называемый дважды

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

Каковы могут быть возможные причины? Пожалуйста помоги.

С уважением Ashish

+0

[Вы пробовали использовать диагностику WCF] (http://msdn.microsoft.com/en-us/library/ms733025 (v = vs.110) .aspx)? –

ответ

3

Трассировка веб-сервис является точкой, чтобы начать с.

1.- Добавьте следующее в web.config в вашем WCF проекта:

<system.diagnostics> 
<trace autoflush="true"> 
</trace> 
<sources> 
    <source name="System.ServiceModel" 
      switchValue="Information, ActivityTracing" 
      propagateActivity="true"> 
     <listeners> 
      <add name="sdt" 
       type="System.Diagnostics.XmlWriterTraceListener" 
       initializeData="WcfDetailTrace.e2e" /> 
     </listeners> 
    </source> 
</sources> 

Затем выполнить вашу службу и проверка содержимого файла «WcfDetaiTrace.e2e» внутри проекта папка, это файл XML. Таким образом, вы легко найдете, что не так с вашим сервисом. Основные проблемы связаны с:

  1. пропавшим без DataContracts/KnownTypes
  2. DateTime сериализация исключение (переполнение)
  3. Используя неправильный глагол для доступа к записи REST (GET, но должен быть POST, PUT или DELETE)

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

+0

Отлично. Это действительно помогает, иначе вы понятия не имеете, WTH вызывает проблемы. – Zeeshan

+0

Что меня заинтересует: почему метод называется во второй раз, когда возникают проблемы с сериализацией? Я не вижу преимущества в выполнении кода дважды. Кроме того: можно ли отключить это поведение, чтобы вместо выполнения метода дважды возникла ошибка, как только сериализация завершилась неудачей? – NineBerry

1

Иногда у него возникает ошибка для сериализации контракта данных, поэтому он называется тем же методом дважды. Пожалуйста, проверьте свой контрактный класс данных для дублирования свойств или любой другой проблемы.

Смежные вопросы