2017-12-30 15 views
0

안정된 끝점으로 작동하는 간단한 WCF 서비스를 만들려고합니다. 누군가를 바라보며 내가 누락 된 부분을 볼 수 있습니다.WCF가 RequestFormat을 준수하지 않음

[OperationContract] 
[WebInvoke(Method ="POST", UriTemplate = "TestJson", BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] 
     string TestJson(CompositeType composite); 

그리고 우체부에서 내가 얻을

콘텐츠 유형 '응용 프로그램/JSON은'예상 '텍스트/XML을하지 않았기 때문에 메시지를 처리 ​​할 수 ​​없습니다; charset = utf-8 '

+0

web.config에 정의 된 서비스 바인딩이 있습니까? – rene

+0

아니, 그냥 바인딩 = "basicHttpBinding" – gstewart

+0

사용 webBinding – rene

답변

0

web.config 파일에 문제가있는 것 같습니다. 비누 서비스에는 basicHttpBinding을, 편안한 서비스에는 webHttpBinding을 추가해야합니다. 둘 다 원한다면 mexHttpBinding도 추가해야합니다. 이 같은 :

<bindings> 
    <basicHttpBinding> 
     <binding name="SoapBinding" /> 
    </basicHttpBinding> 
    <webHttpBinding> 
     <binding name="RestBinding" /> 
    </webHttpBinding> 
    <mexHttpBinding> 
     <binding name="MexBinding" /> 
    </mexHttpBinding> 
</bindings> 

는 다음과 같이 기본 형식으로 JSON 형식을 만들 수 있습니다

<endpointBehaviors> 
     <behavior name="Web"> 
      <webHttp helpEnabled="true" defaultBodyStyle="Bare" defaultOutgoingResponseFormat="Json" automaticFormatSelectionEnabled="true" /> 
     </behavior> 
    </endpointBehaviors> 

지금 당신이 갈 수 있습니다. 요청 헤더에 set content-type을 기억하십시오.