2014-02-09 2 views
0

wcf를 사용하여 나머지 서비스를 만들었습니다. 데이터베이스에서 데이터를 가져 오기 위해 서비스 메서드 내에 Entity 프레임 워크 코드를 작성했습니다.두 번 호출 된 서비스 메소드

브라우저의 모든 호출은 서비스 방법에 두 번 또는 세 번 치고 있습니다. 메서드 내에서 예외가 없습니다. 이전에 같은 문제가 발생하여 DataContract 특성을 모든 모델에 추가하여 해결했습니다 (지금은 도움이되지 않음).

가능한 원인은 무엇입니까? 도와주세요. 웹 서비스를 추적 감사 인 Ashish

+0

[WCF 진단을 사용 해본 적이 있습니까?] (http://msdn.microsoft.com/en-us/library/ms733025(v=vs.110) .aspx)? –

답변

3

은에서 시작하는 지점입니다.

<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"의 내용을 체크 아웃 :

1 .- 당신의 WCF 프로젝트에서의 Web.config에 다음을 추가 폴더, 그것은 XML 파일입니다. 그렇게하면 서비스의 문제점을 쉽게 찾을 수 있습니다. 주요 문제는 관련이 있습니다 REST 항목에 액세스 할 잘못된 동사를 사용

  1. 누락 DataContracts/KnownTypes
  2. 날짜 시간 직렬화 예외 (오버 플로우)
(GET하지만 POST해야한다, PUT 또는 DELETE)

희망이 있습니다.

+0

좋습니다. 정말 도움이됩니다. 그렇지 않으면 너는 잘 모른다. WTH가 문제를 일으킨다. – Zeeshan

+0

관심 대상 : 직렬화에 문제가있는 경우 두 번째로 호출되는 이유는 무엇입니까? 코드를 두 번 실행하면 이점이 보이지 않습니다. 또한 : 메서드를 두 번 실행하는 대신 직렬화가 실패하자마자 오류가 발생하도록 해당 동작을 비활성화 할 수 있습니까? – NineBerry

1

종종 동일한 메소드를 두 번 호출 한 이유는 데이터 계약을 직렬화하는 데 오류가 있습니다. 데이터 속성 클래스에서 중복 속성이나 다른 문제가 있는지 확인하십시오.