已超出最大字符串内容长度配额(8192)

时间:2015-03-18 19:15:20

标签: .net web-services

我在.net应用程序中的IIS 7上托管了一个Web服务。我刚刚添加了一个新函数,它接受一个更大的string64格式参数。

从我的程序调用此函数时,我收到以下错误。我已经尝试在绑定中添加读者配额,但这不能解决问题,我仍然会收到错误。

任何和所有帮助表示赞赏。

我得到的确切错误......

  

错误格式化程序在尝试反序列化时抛出异常   消息:尝试反序列化参数时出错   http://tempuri.org/:Payload。 InnerException消息是'有的   反序列化System.String类型的对象时出错。最大值   读取XML时已超出字符串内容长度配额(8192)   数据。可以通过更改此配额来增加此配额   XmlDictionaryReaderQuotas上的MaxStringContentLength属性   创建XML阅读器时使用的对象。第1行,第10582位。'。   有关详细信息,请参阅InnerException。

这是我的Web.config文件...注意我已经将maxrequestlength,maxReceivedMessageSize,maxStringContentLength增加了10到81920倍。

    <?xml version="1.0"?>
<configuration>
  <system.web>
    <compilation debug="true" strict="false" explicit="true" targetFramework="4.0" />
    <httpRuntime maxRequestLength="81920"/>
    <customErrors mode="Off"/>
    <pages>
      <namespaces>
        <add namespace="System.Runtime.Serialization" />
        <add namespace="System.ServiceModel" />
        <add namespace="System.ServiceModel.Web" />
      </namespaces>
    </pages>
  </system.web>
  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="NewBinding0" maxReceivedMessageSize="81920">
          <readerQuotas maxDepth="32" maxStringContentLength="81920" maxArrayLength="6000000" maxBytesPerRead="40960" maxNameTableCharCount="163840" />
        </binding>
      </basicHttpBinding>
    </bindings>
    <services>
      <service name="ToolsSvc.IToolsService">
        <endpoint address="http://{URL}.com/ToolsSerivce/Tools.svc"
          binding="basicHttpBinding" bindingConfiguration="NewBinding0"
          contract="ToolsSvc.IToolsService" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="true"/>
          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
  <system.webServer>
   <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>

</configuration>

0 个答案:

没有答案