合同'INoteService'的操作'GetNotesByDate'指定>多个请求体参数

时间:2014-01-20 09:52:56

标签: c# asp.net wcf rest

我有一个简单的WCF服务,我试图从我的网站上调用。但是当我调用它时,我收到以下错误:

  

合同'INoteService'的操作'GetNotesByDate'指定   多个请求体参数在没有任何包装器的情况下被序列化   元素。最多一个body参数可以在没有包装器的情况下进行序列化   元素。删除额外的身体参数或设置BodyStyle   WebGetAttribute / WebInvokeAttribute上的属性为Wrapped。

然后我按错误提到并添加了BodyStyle属性,但没有任何改变。但错误仍然出现,我不知道为什么会发生这种情况?

我的操作cotracts看起来像这样:

[OperationContract]
[WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "/notes/{userId}")]
List<Note> GetAllNotes(string userId);

[OperationContract]
[WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "notes/{userId}/{date}")]
List<Note> GetNotesByDate(String userId, String date);

我在我的Web客户端中使用的两行来调用Web服务:

ServiceReference1.NoteServiceClient client = new NoteServiceClient();
List<note> allNotes = client.GetAllNotes("3").ToList();

asp.net网站中的Web配置如下所示:

<system.serviceModel>
    <bindings>
      <webHttpBinding>
        <binding name="WebHttpBinding_INoteService">
          <security mode="Transport">
            <transport clientCredentialType="None"/>
          </security>
        </binding>
      </webHttpBinding>
    </bindings>
    <client>
      <endpoint address="https://localhost:1095/NoteService.svc" binding="webHttpBinding" bindingConfiguration="WebHttpBinding_INoteService" 
                contract="ServiceReference1.INoteService" name="WebHttpBinding_INoteService" behaviorConfiguration="webHttp"/>
    </client>
    <behaviors>
      <endpointBehaviors>
        <behavior name="webHttp">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
  </system.serviceModel>

如果有人知道为什么会这样,我会很高兴听到这个错误的原因。 提前谢谢!

0 个答案:

没有答案