OperationFormatter遇到无效的Message正文

时间:2009-01-29 16:38:49

标签: wcf rest

我正在为外部REST API创建WCF客户端,但是收到以下错误:

  

OperationFormatter遇到了一个   邮件正文无效

客户端正确地命中服务器并执行我要求的“发布”,但它期望一个不同的响应元素,基本上将“响应”附加到OperationContract名称的名称,例如:

  

OperationFormatter遇到了一个   邮件正文无效。期待找到   节点类型'Element'的名称   'companyResponse'和命名空间''。   找到名称为“Element”的节点类型   'company'和namespace''

是否有人知道如何删除要添加到名称的“响应”的要求?

其他详细信息(我添加了ReplyAction,但没有任何区别):

[OperationContract(Name="company", Action = "company", ReplyAction = "company")]
        [WebInvoke(
        Method = "POST",
        BodyStyle = WebMessageBodyStyle.WrappedResponse,
        ResponseFormat = WebMessageFormat.Xml,
        UriTemplate = "companies.xml"
        )]
        Company AddCompany(Company company);

2 个答案:

答案 0 :(得分:2)

操作合同中的BodyStyle已设置为 WrappedResponse 。将BodyStyle更改为 WebMessageBodyStyle.Bare

这告诉WCF运行时不要包含包含名称= MethodName +单词“Response”的XML节点的包装器

答案 1 :(得分:0)

如果您发布了正在使用的合同定义,那将会有所帮助。但是,一般情况下,您必须在您尝试调用的合同上附加到方法的OperationContractAttribute实例上设置Name属性,并且还可能设置Action和ReplyAction属性。