我有一个客户端网页,它将大型json对象发送到与网页相同的域上的代理服务。
然后,代理(ashx处理程序)将请求转发给WCF Rest Service。使用WebClient对象(用于发出http请求的标准.net对象)
JSON通过客户端网页上的jQuery POST成功到达代理。
但是,当代理将此转发给WCF服务时,我收到错误请求 - 错误400
当json数据的大小很小时,不会发生这种情况
WCF服务合同如下所示
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
[OperationContract]
CarConfiguration CreateConfiguration(CarConfiguration configuration);
像这样的DataContract
[DataContract(Namespace = "")]
public class CarConfiguration
{
[DataMember(Order = 1)]
public int CarConfigurationId { get; set; }
[DataMember(Order = 2)]
public int UserId { get; set; }
[DataMember(Order = 3)]
public string Model { get; set; }
[DataMember(Order = 4)]
public string Colour { get; set; }
[DataMember(Order = 5)]
public string Trim { get; set; }
[DataMember(Order = 6)]
public string ThumbnailByteData { get; set; }
[DataMember(Order = 6)]
public string Wheel { get; set; }
[DataMember(Order = 7)]
public DateTime Date { get; set; }
[DataMember(Order = 8)]
public List<string> Accessories { get; set; }
[DataMember(Order = 9)]
public string Vehicle { get; set; }
[DataMember(Order = 10)]
public Decimal Price { get; set; }
}
当ThumbnailByteData字段很小时,一切正常。当它很大时,我得到400错误
我有什么选择?
我已尝试增加MaxBytesRecived配置设置,但这还不够
有什么想法吗?
答案 0 :(得分:0)
我还会调整maxStringContentLength
和maxBytesPerRead
。同时确保您设置的任何绑定配置,您实际上在所有正确的位置使用它。
当您在WCF消息输入中处理大字符串时,此线程可以很好地捕获所有可能出错的内容,因此我将遵循此处的指导:Sending large strings to a WCF web service