WCF 요청 본문이 너무 길어서 400 오류 해결 방안으로 돌아갑니다.

2349 단어 REST잘못WCF
오늘 WCF로 글을 추가할 때 POST 요청 본문이 일정 문자 수량(ContentLength > 1w)을 초과하면 서버가 항상 400 오류로 되돌아오는 것을 발견했습니다. 마지막으로 WCF가 요청 본문의 길이를 제한했기 때문에 설정 파일에 다음과 같은 설정을 추가할 수 있습니다.
<system.serviceModel>
    <services>
      <service behaviorConfiguration="webApi.AddBehavior" name="webApi.Add">
        <host>
          <baseAddresses >
            <add baseAddress="http://localhost:8000/api/"></add>
          </baseAddresses>
        </host>
        <endpoint address="add" binding="webHttpBinding" bindingConfiguration="webBind" behaviorConfiguration="restful" contract="webApi.IAdd"></endpoint>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="webApi.AddBehavior">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="restful">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <bindings>
      <webHttpBinding>
        <binding name="webBind" maxReceivedMessageSize="2147483647">
          <readerQuotas maxDepth="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" maxStringContentLength="2147483647"/>
        </binding>
      </webHttpBinding>
    </bindings>
  </system.serviceModel>

귀속에 대한 설정을 추가하고 받아들일 수 있는 본문의 최대 길이를 설정합니다.
 <bindings>
      <webHttpBinding>
        <binding name="webBind" maxReceivedMessageSize="2147483647">
          <readerQuotas maxDepth="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" maxStringContentLength="2147483647"/>
        </binding>
      </webHttpBinding>
    </bindings>

종결점에 귀속 설정을 추가하는name
bindingConfiguration="webBind"

좋은 웹페이지 즐겨찾기