我正在尝试使用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. 类似的问题