C# RESTful服务中webHttpBinding的绑定和配置?

C# RESTful服务中webHttpBinding的绑定和配置?,c#,wcf,wcf-binding,object-graph,maxreceivedmessagesize,C#,Wcf,Wcf Binding,Object Graph,Maxreceivedmessagesize,我是WCF的新手,正在尝试了解服务所采用的错综复杂的配置。我有一个rest服务,它可以返回一个表的导出,它比默认的maxReceivedMessageSize大。因此,我一直在尝试使用此服务/端点的配置,但我一无所获。下面是我正在研究的要点,我遗漏了什么?我只是以JSON或XML的形式返回列表,并且我需要能够返回超过默认阈值的列表 <system.serviceModel> <serviceHostingEnvironment aspNetCompatibilityEnable

我是WCF的新手,正在尝试了解服务所采用的错综复杂的配置。我有一个rest服务,它可以返回一个表的导出,它比默认的
maxReceivedMessageSize
大。因此,我一直在尝试使用此服务/端点的配置,但我一无所获。下面是我正在研究的要点,我遗漏了什么?我只是以JSON或XML的形式返回列表,并且我需要能够返回超过默认阈值的列表

<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />

<services>
  <!-- defin service -->
  <service behaviorConfiguration="EPRestBehavior" name="EPRestDNS">
    <endpoint address="" 
              bindingConfiguration="ApiExportBinding"
              binding="webHttpBinding" 
              contract="IDNSRestService" />
  </service>
</services>

<behaviors>
  <serviceBehaviors>
    <behavior name="EPRestBehavior">
      <serviceMetadata httpGetEnabled="true"/>
      <serviceDebug includeExceptionDetailInFaults="true"/>
    </behavior>
  </serviceBehaviors>

  ...

</behaviors>
<bindings>
  <!-- Customizations for REST service -->
  <webHttpBinding>
    <binding name="ApiExportBinding" maxReceivedMessageSize="10485760"
                    maxBufferPoolSize="10485760" maxBufferSize="10485760" closeTimeout="00:03:00"
                    openTimeout="00:03:00" receiveTimeout="00:10:00" sendTimeout="00:03:00">
      <readerQuotas maxDepth="32" maxStringContentLength="10485760"
                      maxArrayLength="10485760" maxBytesPerRead="10485760" />
      <security mode="None" />
    </binding>
  </webHttpBinding>
</bindings>

<standardEndpoints>
  <webHttpEndpoint>
    <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true" />
  </webHttpEndpoint>
</standardEndpoints>

...

更新1 我已经删除了所有配置,并对现有webHttpEndpoint部分进行了简单的尝试:

<standardEndpoints>
  <webHttpEndpoint>
    <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true" maxReceivedMessageSize="1000000000" />
  </webHttpEndpoint>
</standardEndpoints>


同样的结果
HTTP/1.1 502由对等方重置连接

异常是发生在服务端还是客户端?一个常见的错误是,您更改了服务器上的值,但忘记了更改客户端上的值。

所有这些都是WCF非常糟糕的原因。最后,我在服务器上创建了一个svclog,实际问题达到了默认对象图中的极限。我在实现中添加了新的限制,就是这样。7个多小时就为了这样一件蠢事

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, MaxItemsInObjectGraph = 2147483646)]

说得好,这是客户端。使用Fiddler,我看到出现502连接重置错误,但在服务器上或调试时不会引发异常。就好像我遗漏了一些东西,让客户知道“嘿,你即将获得一块相当好的数据,等待一秒钟以获取所有数据”。所以你没有抛出任何验证?没有,没有。仅Fiddler和浏览器中的客户端错误。有关我的最新尝试,请参阅更新。是的,我们有另一种方法来返回搜索,这种方法可以很好地处理数据的子集,但返回所有数据都失败了,我不确定我需要更改什么。