VisualStudio2012と.netFramework4.5を使用してwcfRESTサービスを作成しようとしています。サービスは、4つ以上のパラメーターとともにファイルをアップロードしようとします。これを1回の呼び出しで実行したいと思います。httpの「put」メソッドを使用したい。しかし、私はこれらの2つのエラーを抱え続けています。
コントラクト「IRestBasketService」の操作「AddFile」には複数のリクエスト本文パラメーターがあり、そのうちの1つはStreamです。Streamがパラメーターである場合、本体に他のパラメーターを含めることはできません。(BodyStyleラップを使用している場合)
と
コントラクト「IRestBasketService」の操作「AddFile」は、ラッパー要素なしでシリアル化される複数のリクエスト本文パラメーターを指定します。ラッパー要素なしでシリアル化できるbodyパラメーターは最大で1つです。余分なbodyパラメータを削除するか、WebGetAttribute/WebInvokeAttributeのBodyStyleプロパティをWrappedに設定します。(BodyStyleベアを使用している場合)
私は何をすべきか ?
以下は私にエラーを与える2つの署名です
[WebInvoke(Method = "PUT",
BodyStyle = WebMessageBodyStyle.Bare,
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "AddFile?key={key}&email={email}&fileName={fileName}&groupID={groupID}&ID={objectID}")]
Response AddFile(string key, string email, string fileName, string type, string objectID, string groupID, Stream fileStream );
[WebInvoke(Method = "PUT",
BodyStyle = WebMessageBodyStyle.Wrapped,
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json,
UriTemplate = "/AddFile")]
Response AddFile(AddFileRequest request, Stream FileStream);
web.configでwebHttpBindingとwebHttpの動作を使用しています。