2011-12-09 11 views
0

WCF Webサービスを作成しました。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とPostメソッドがあります。これはうまくいきますが、私のGETサービスの応答フォーマットを設定したい場合は、XMLSERIALIZERFORMATタグを使用する必要があります。これを追加してPOSTサービスにヒットしようとすると、Error:400 "Bad Request Error"が表示されます。同じサービスでGETメソッドの応答をどのように設定する必要がありますか。

私はGETメソッドのみを保持していて、 'Service1.svc'にはPOSTサービスしかないプロジェクトで、別のサービス 'Service2.svc'を追加しようとしました。 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

関連する問題