Javascript到WCF-MaxStringContentLength异常

Javascript到WCF-MaxStringContentLength异常,wcf,Wcf,我正在使用jQuery/JavaScript客户端向WCF REST服务(webHttpEndpoint)发送AJAX请求,我得到以下异常 System.Xml.XmlException:读取Xml数据时已超过最大字符串内容长度配额(8192)。可以通过更改创建XML读取器时使用的XmlDictionaryReaderQuotas对象的MaxStringContentLength属性来增加此配额 这是我的system.serviceModel web.config定义 <system.

我正在使用jQuery/JavaScript客户端向WCF REST服务(webHttpEndpoint)发送AJAX请求,我得到以下异常

System.Xml.XmlException:读取Xml数据时已超过最大字符串内容长度配额(8192)。可以通过更改创建XML读取器时使用的XmlDictionaryReaderQuotas对象的MaxStringContentLength属性来增加此配额

这是我的system.serviceModel web.config定义

  <system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"
                               multipleSiteBindingsEnabled="true" />
    <bindings>
      <basicHttpBinding>
        <binding name="MembershipBinding">
          <security mode="TransportWithMessageCredential">
            <message clientCredentialType="UserName" />
          </security>
        </binding>
        <binding name="userHttps">
          <security mode="Transport" />
        </binding>
      </basicHttpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="CommonSvcBehavior">
          <serviceCredentials>
            <userNameAuthentication userNamePasswordValidationMode="MembershipProvider"
                                    membershipProviderName="AspNetSqlMembershipProvider" />
          </serviceCredentials>
          <serviceAuthorization principalPermissionMode="UseAspNetRoles"
                                roleProviderName="MySqlRoleProvider" />
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
        <behavior name="AuthenticationServiceTypeBehaviors">
          <serviceMetadata httpGetEnabled="true" />
        </behavior>
        <behavior name="">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <standardEndpoints>
      <webHttpEndpoint>
        <standardEndpoint name=""
                          crossDomainScriptAccessEnabled="false"
                          helpEnabled="true"
                          automaticFormatSelectionEnabled="true" />
      </webHttpEndpoint>
    </standardEndpoints>
  </system.serviceModel>

我已尝试添加以下绑定…但它不起作用

  <webHttpBinding>
    <binding name="webHttpBindingDev">
      <readerQuotas maxDepth="2147483647"
                    maxStringContentLength="2147483647"
                    maxArrayLength="2147483647"
                    maxBytesPerRead="2147483647"
                    maxNameTableCharCount="2147483647" />
    </binding>
  </webHttpBinding>


您能提供帮助吗?

如果您想覆盖绑定的默认值,需要将绑定名称分配给
部分中
元素的
绑定配置
属性,如下所示:

<services>
  <service name="MyService">
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="MembershipBinding" contract="MyService.IMyContract" />
  </service>
</services>

部分位于
部分

我不是100%确定这对RESTful WCF有效,但从我所做的研究来看,它似乎应该有效


需要记住的重要一点是,您必须告诉服务要为给定端点使用什么绑定,如果您需要该绑定上的设置值而不是默认值,则需要将您设置的绑定分配给端点。

我已经解决了……需要在standardEndPoints中更改以下内容

<standardEndpoints>
  <webHttpEndpoint>
    <standardEndpoint name=""
                      crossDomainScriptAccessEnabled="false"
                      helpEnabled="true"
                      automaticFormatSelectionEnabled="true">
      <readerQuotas maxDepth="2147483647"
                    maxStringContentLength="2147483647"
                    maxArrayLength="2147483647"
                    maxBytesPerRead="2147483647"
                    maxNameTableCharCount="2147483647" />       
    </standardEndpoint>
  </webHttpEndpoint>
</standardEndpoints>

十个问题而不是一个被接受的答案?