我在.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>