문제

WCF (VS2005, .NET 3.0)와 함께 작업하고 있으며 코드 대신 웹 브라우저를 통해 직접 호출하여 서비스를 테스트하려고합니다.

OperationContract 속성 호출 getTest ()로 장식 된 하나의 메소드가 있습니다. 액세스 할 수있는 .SVC 파일 뒤에 서비스가 있습니다. 그러나 내가 가면 .../test.svc/gettest가있는 경우 빈 화면 만 나타납니다.

다음은 web.config입니다.

<system.serviceModel>
  <services>
    <service name="TestService" behaviorConfiguration="TestBehavior">
      <endpoint
        address=""
        binding="basicHttpBinding"
        contract="TestService.ITestService"></endpoint>
    </service>
  </services>
  <behaviors>
    <serviceBehaviors>
      <behavior name="TestBehavior">
        <serviceMetadata httpGetEnabled="true"/>
      </behavior>
    </serviceBehaviors>
  </behaviors>
</system.serviceModel>

서비스에서 중단 점을 설정하려고 할 때 마다도 맞지 않습니다. 내가 어디에서 잘못 될지에 대한 아이디어가 있습니까? 브라우저를 통해 메소드에 액세스 할 때 응답을받는 ASMX 서비스에 익숙합니다. 그러나 서비스에 액세스 할 때만 "서비스를 만들었습니다"페이지 만 얻을 수 있지만 방법은 없습니다.

도움이 되었습니까?

해결책

WCF는 ASMX 서비스가 사용했던 "웹에서 호출"옵션을 제공하지 않습니다. 왜요? 그것은 거대한 보안 구멍이며 웹 서비스를 테스트하는 가장 좋은 방법은 아닙니다.

한 가지 옵션은 @yossi가 제안한대로 수행하고 WCF 서비스 테스트 도구를 사용하는 것입니다.

또는 더 나은 아직, 웹 서비스를 소비하려면 자신의 클라이언트를 작성하십시오. 이를 통해 서비스를 소비 할 사람들과 동일한 문제를 처리하는 데 도움이 될 것입니다.

나를 잘못 이해 하지마, WCF는 Frikkin 굉장합니다! 그러나 저글링에는 많은 것이 있으며, 새로운 가능성이 있다면 잘못 될 것입니다. 얼리 어답터조차도 여전히 WCF의 모든 내용을 알지 못합니다.

다른 팁

사용 고려하십시오 WCF 서비스 테스트 도구 서비스의 초기 테스트를 위해 (그러나 실제로 단위 테스트는 친구입니다 :-)) (예- 최소한 처음에는 MEX 엔드 포인트가 필요합니다).

디버깅에 관해서 - 서비스를 호스팅하는 올바른 프로세스에 첨부되어 있습니까? 디버그 기호로 컴파일되어 있습니까? 서비스가 IIS에 게시 된 경우 게시 된 코드는 Visual Studio의 코드와 동일합니까?

사용해 보셨습니까? SOAPUI? 그들은 정말 훌륭한 웹 서비스 테스트 도구를 제공합니다. 그들은 심지어 WebStart로 실행되는 무료 버전도 가지고 있습니다!

또한 MEX 엔드 포인트 인 CF를 설치하십시오 MSDN 링크.

.NET 3.5가 필요한 webgetAttribute를 살펴보십시오.

이를 통해 WCF 웹 서비스에서 REST 데이터를 얻을 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top