2011-12-09 4 views
0

우리는 WCF 웹 서비스를 만들었습니다. 다음과 같은 두 가지 작업 계약을 만들었습니다.Restful Webservice에서 XmlSerializerFormat을 사용하는 방법?

public interface IRestServiceImpl 
{ 
     [OperationContract] 
    [WebInvoke(Method = "GET", 
     ResponseFormat = WebMessageFormat.Xml, 
     BodyStyle = WebMessageBodyStyle.Wrapped, 
     UriTemplate = "getID/{id}")] 
    File getID(string id); 

    [OperationContract] 
    [WebInvoke(Method = "POST", 
     ResponseFormat = WebMessageFormat.Xml, 
     RequestFormat = WebMessageFormat.Xml, 
     BodyStyle = WebMessageBodyStyle.Bare, 
     UriTemplate = "auth")] 
    ResponseData Auth(RequestData rData); } 

알다시피 Get and Post 메서드가 있습니다. 이 잘 작동하지만 내 GET 서비스의 응답 형식을 설정하려면 XMLSERIALIZERFORMAT 태그를 사용해야합니다.이 추가 한 다음 POST 서비스에 도달하려고하면 오류 : 400 "잘못된 요청 오류"가져옵니다. 동일한 서비스에서 내 GET 메소드의 응답을 어떻게 설정해야합니까?

다른 서비스 'Service2.svc'를 추가하려고 시도했습니다. 프로젝트에서 'GET 메서드 만 사용하고'Service1.svc '에는 POST 서비스 만 있습니다. Service2의 인터페이스에서 XMLSERIALIZERFORMAT를 사용했지만 여전히 POST 서비스를 사용할 수 없습니다. DATACONTRACTSERIALIZER를 사용해야한다고 생각합니다. 하지만 그 속성을 설정하는 방법을 모릅니다.

사람이 좀 도와 주시겠습니까? 감사합니다 Charan

답변

0

GET에서 응답을 XML로 보내려면 GET 메서드에서 다음 설정을 사용하면 충분합니다.

ResponseFormat = WebMessageFormat.Xml 

XmlSerializerFormat을 사용할 필요가 없습니다. IE에서 서비스를 탐색하려고하면 GET 메서드의 응답이 XML 형식이어야합니다.

POST에서 잘못된 요청을받는 방법에 대해서는 요청 본문이 사용자의 방법으로 전송되는 방법을 확인하십시오. 요청 본문을 보려면 Fiddler와 같은 도구를 사용하여 요청 및 응답을 검사하십시오. 잘못된 요청의 원인을 디버깅하려면 서비스 추적을 사용하십시오.

How to enable tracing on your Service

관련 문제