使用restful wcf上传文件和多个参数



我正在尝试使用visual studio 2012和。net framework 4.5创建一个wcf rest服务。该服务将尝试上传带有4个或更多参数的文件。我想一个电话就搞定。我想使用http"put"方法。但我一直有这两个错误。

合约'IRestBasketService'中的'AddFile'操作有多个请求体参数,其中一个是流。当Stream是参数时,主体中不能有其他参数。(当我使用BodyStyle wrapped)

合约'IRestBasketService'的'AddFile'操作指定了多个要序列化的请求体参数,而不需要任何包装元素。在没有包装器元素的情况下,最多只能序列化一个主体参数。要么删除额外的主体参数,要么将WebGetAttribute/WebInvokeAttribute上的BodyStyle属性设置为Wrapped。(当我使用裸体样式时)

我该怎么办?

下面是给我错误的两个签名

 [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行为。

由于您使用Stream作为输入参数之一,因此正文中不能有其他参数。您需要将所有额外的数据作为流的一部分添加到客户端中,然后在服务中对其进行解析。

1。类似的问题2. 类似的问题

相关内容

  • 没有找到相关文章

最新更新