2011-06-29 16 views
1

POSTされたフォームを受け入れるASP.NET WCF .svcインターフェイスがあります。 POSTクライアントを制御することはできませんが(IBM Lotus Forms Viewerアプリケーション)、その動作は自分が選択したURLにPOSTし、レスポンスがInternet Explorerでローカルに配信される一時ファイルとしてポップアップされます拡張子はMIMEタイプによって制御されます。ASP.NET WCFのリターン出力を完全に制御するにはどうすればよいですか?

私はWCF RESTサービスには初めてですが、レスポンスを制御するのに苦労しています。これはXMLタグでラップされ続けます。 すべての出力ラッピングをオフにし、WCF操作から返されるものを正確に制御する方法はありますか?

私はフォームを.aspxファイルのようなものにすることができますが、私はその決定を下す前に書式がどのように制御されているかを知ることは少なくとも役に立つと思っていました。

[EDIT]明確にするため、私の現在のサービス・インターフェースのプロトタイプは次のようになります - 私はSystem.IO.Streamを返す場合、

[OperationContract] 
[WebInvoke(Method = "POST", UriTemplate = "/AF1067/SubmitForm", 
    BodyStyle = WebMessageBodyStyle.Bare)] 
public string AF1067_SubmitForm(System.IO.Stream fileContents) { ... } 

[EDIT]ユーザ@Konは答えを持っていたthis linkを見つけました応答はラップされなくなります。

+0

リクエストが発生したIBMアプリケーション内で指定されたコンテンツタイプが正しくないため、XMLタグで囲まれていると感じました。しかし、コードを見ることなく伝えるのは難しいです。 – Kon

+0

@ Kon:いいえ、要求はビューアから裸のPOSTとして出てきます。詳細は編集を参照してください。私が修正する必要がある私のサービスの応答。 –

答えて

0

私たちのコメントから引き続き、これは依然としてリクエスタの設定と関係していると思います。おそらく、コンテンツタイプの設定を指定していない裸のPOSTは、デフォルトの設定が間違っていますか?明示的に "application/json"または "application/json; charset=utf-8"に設定してください。そこにアイデアを投げてください。

もう1つのことは、サービスメソッドのResponseFormatもJSONに設定されていることです。

Btw、niceメソッド名。 ;)

+0

しかし、私はJSONを交換したくないので、私は「こんにちは世界」と言い返したいと思います。応答全体として。あなたのコメントはまだ適用されますか? –

+0

私はあなたの唯一の応答形式のオプションはXMLまたはJSONだと思います。そして、両方を同時にサポートする方法については、こちらをご覧ください:http://stackoverflow.com/questions/5752975/wcf-service-method-to-return-json-or-soap – Kon

+1

私はちょうどこれを見つけましたが、http ://stackoverflow.com/questions/992533/wcf-responseformat-for-webget正しい方向にあなたを導くかもしれません。 – Kon

関連する問題