我正在尝试通过MVC Web应用程序使用我的WCF Web服务。我通过VS中的添加服务引用对话框添加服务引用。现在,当我尝试调用我的proxy.LoginUser时,我收到错误消息:
合同'IService1'的操作'GetAlertNotification'指定要序列化的多个请求体参数,而不包含任何包装元素。最多可以在没有包装元素的情况下序列化一个body参数。删除额外的body参数或将WebGetAttribute / WebInvokeAttribute上的BodyStyle属性设置为Wrapped。
唯一的问题是GetAlertNotification中没有身体参数?如果我理解正确,如果我通过查询字符串传递所有参数,这不应该是一个问题?以下是IService中GetAlertNotification的签名:
[OperationContract]
[WebInvoke(Method = "GET", UriTemplate = "/GetAlertNotification?project={project}¤tversion={currentversion}&EncryptData={EncryptData}", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
AlertNotification GetAlertNotification(string project, string currentversion, bool EncryptData = false);
编辑: 我用WebGet替换了WebInvoke,但仍然收到上面的错误消息。怎么说它有多个请求体参数和UriTemplate中指定的所有内容?我不明白错误在说什么? Anynone?