首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WCF调试REST api

WCF调试REST api
EN

Stack Overflow用户
提问于 2016-10-20 00:02:44
回答 1查看 106关注 0票数 1

已超过传入消息的最大消息大小配额(65536)。若要增加配额,请使用相应绑定元素的MaxReceivedMessageSize属性。

我在配置文件中的部分

代码语言:javascript
复制
  <system.serviceModel>
    <services>
      <service name="RestAPI.RiskEventAPI" behaviorConfiguration="metadataBehavior">
        <endpoint address=""
                  binding="basicHttpBinding"
                  contract="RestAPI.IRiskEventAPI"/>
        <endpoint address="mex"
                  binding="mexHttpBinding"
                  contract="IMetadataExchange"/>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="metadataBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
        <behavior name="RestAPI.RiskEventAPIBehavior">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="REST">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <bindings>
      <webHttpBinding>
        <binding name="BindingWithMaxSizeIncreased"
                 maxBufferSize="2147483647"
                 maxBufferPoolSize="2147483647"
                 maxReceivedMessageSize="2147483647">
          <readerQuotas maxDepth="2147483647" 
                        maxStringContentLength="2147483647"
                        maxArrayLength="2147483647" 
                        maxBytesPerRead="2147483647"
                        maxNameTableCharCount="2147483647" />
        </binding>
      </webHttpBinding>
    </bindings>
  </system.serviceModel>

令人困惑的是,到处都是web,而且没有专门针对REST和WCF的东西。调试窗口出现了,但我在这个问题的顶部得到了错误...

这不会影响任何事情:

代码语言:javascript
复制
<endpoint address=""
          binding="basicHttpBinding"
          bindingConfiguration="BindingWithMaxSizeIncreased"
          contract="RestAPI.IRiskEventAPI"/>

正在复制

代码语言:javascript
复制
<webHttpBinding> to <basicHttpBinding> didn't help either

我试过了…我使用了wcf编辑器并添加了一个mexHttpBinding,但它与maxBufferSize,maxBufferPoolSize和maxReceivedMessageSize有问题(说他们是不允许的)

代码语言:javascript
复制
<mexHttpBinding>
    <binding name="bindingMex"
             maxBufferSize="2147483647"
             maxBufferPoolSize="2147483647" 
             maxReceivedMessageSize="2147483647"/>
  </mexHttpBinding>

我试过这个(也不起作用):

代码语言:javascript
复制
    <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration="IncreasedBindingMaxSize" contract="IMetadataExchange" />
...
      <basicHttpBinding>
        <binding name="IncreasedBindingMaxSize" maxBufferSize="2147483647"
          maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
          <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
            maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
        </binding>
      </basicHttpBinding>
EN

回答 1

Stack Overflow用户

发布于 2016-10-20 03:24:56

我认为您遇到这个问题的原因是因为您似乎没有为webHttp显式定义端点,并且您没有在配置中使用默认绑定(即,没有name属性的<binding>元素)。

这意味着系统将使用webHttpBinding的默认值(较小)。不清楚您是否想为您的服务同时使用SOAP和REST端点-您有一个使用basicHttpBinding显式定义的端点,它似乎是面向SOAP的,但我不确定。

您可以做的是更改您的服务端点并使用webHttpBinding,REST行为,并通过`部分中<endpoint>元素上的bindingConfiguration属性将较大的绑定配置"BindingWithMaxSizeIncreased“显式地分配给该端点,如下所示:

代码语言:javascript
复制
<endpoint address=""
          behaviorConfiguration="REST"
          binding="webHttpBinding"
          bindingConfiguration="BindingWithMaxSizeIncreased"
          contract="RestAPI.IRiskEventAPI"/>

如果您确实需要basicHttpBinding端点,您可以使用webHttpBinding添加另一个端点,尽管您可能需要一个不同于address=""的地址,可能类似于address="REST"

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40136466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档