WCF休息服务500内部服务器错误

时间:2014-04-09 06:25:26

标签: c# json wcf rest post

我在访问服务方法时遇到异常。所有GET方法在我的服务上正常工作但是当我运行POST方法时,我得到500内部服务器错误。

https://mservice.domain.com/ServicesRestful.svc/json/addorder

  

{"用户id":" 30155496"" locationId":" 10""为了":& #34; LOREM"}

服务代码

[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "addorder", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)]
[FaultContract(typeof(ServiceException), Name = "ServiceException")]
Standard AddOrder(string personId, int locationId, string order);

错误消息

  

传入的消息具有意外的消息格式' Raw'。该   该操作的预期消息格式是' Xml&#39 ;; '的Json&#39 ;.这个可以   是因为尚未配置WebContentTypeMapper   捆绑。有关更多信息,请参阅WebContentTypeMapper的文档   的信息。

1 个答案:

答案 0 :(得分:0)

以这种方式更改合同:

[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "addorder", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
[FaultContract(typeof(ServiceException), Name = "ServiceException")]
Standard AddOrder(Order order);

您的Order课程在哪里:

[DataContract]
public class Order
{
    [DataMember]
    public string personId {get; set;}
    [DataMember]
    public int locationId {get; set;}
    [DataMember]
    public string order {get; set;}
}

现在,尝试并运行。确保JSON格式正确。