C# 已超过最大字符串内容长度配额(8192)。请增加XmlDictionaryReaderQuotas上的MaxStringContentLength属性
当我将实体对象传递给Web服务时,出现了以下错误 读取XML数据时已超过最大字符串内容长度配额(8192)。可以通过更改创建XML读取器时使用的XmlDictionaryReaderQuotas对象的MaxStringContentLength属性来增加此配额 我试图通过在Webservice的webconfig中提供以下代码来解决这个问题,但错误仍然存在。有人能帮忙吗C# 已超过最大字符串内容长度配额(8192)。请增加XmlDictionaryReaderQuotas上的MaxStringContentLength属性,c#,wcf,web-config,C#,Wcf,Web Config,当我将实体对象传递给Web服务时,出现了以下错误 读取XML数据时已超过最大字符串内容长度配额(8192)。可以通过更改创建XML读取器时使用的XmlDictionaryReaderQuotas对象的MaxStringContentLength属性来增加此配额 我试图通过在Webservice的webconfig中提供以下代码来解决这个问题,但错误仍然存在。有人能帮忙吗 <bindings> <wsHttpBinding> <bindi
<bindings>
<wsHttpBinding>
<binding name="MyService" maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="None" />
<message clientCredentialType="UserName" />
</security>
</binding>
</wsHttpBinding>
</bindings>
您必须在服务器和客户端上设置最大字符串内容长度配额。因此,请检查您的客户端配置。如果不起作用,请检查您是否使用了正确的绑定。您必须在服务器和客户端上设置最大字符串内容长度配额。因此,请检查您的客户端配置。如果不起作用,请检查您是否使用了正确的绑定。您的服务器端Web配置允许使用大字符串,但您还需要修改客户端ServiceReferences.ClientConfig文件以反映这一点
<configuration>
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="Binding_MyService">
<binaryMessageEncoding />
<httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" />
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="yourserviceurlhere"
binding="wsHttpBinding" bindingConfiguration="Binding_MyService"
contract="yourcontracthere" name="MyService" />
</client>
</system.serviceModel>
服务器端Web配置允许使用大字符串,但您还需要修改客户端ServiceReferences.ClientConfig文件以反映这一点
<configuration>
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="Binding_MyService">
<binaryMessageEncoding />
<httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" />
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="yourserviceurlhere"
binding="wsHttpBinding" bindingConfiguration="Binding_MyService"
contract="yourcontracthere" name="MyService" />
</client>
</system.serviceModel>
但我在某个地方读到,当使用WCF web服务时,我们不需要创建自定义绑定。实际上,这是我从自己的项目中提取的一些修改过的代码。如果您的silverlight客户端使用basichttpbinding,那就好了。正如我从你的回复者对peer的评论中看到的那样,从技术上讲,如果这只发生在连接的一侧,你只需要修改该一侧的配置文件。换句话说,如果发送到服务失败,请修改服务的配置文件。如果它发生在客户机上,您只需要修改客户机配置文件。但是我在某个地方读到,当使用WCF web服务时,我们不需要创建自定义绑定。事实上,这是我从自己的项目中提取的一些修改过的代码。如果您的silverlight客户端使用basichttpbinding,那就好了。正如我从你的回复者对peer的评论中看到的那样,从技术上讲,如果这只发生在连接的一侧,你只需要修改该一侧的配置文件。换句话说,如果发送到服务失败,请修改服务的配置文件。如果它发生在客户端上,您只需要修改客户端配置文件。我非常确定我使用的是HTTPS绑定,所以我在我的项目中尝试了一个新的绑定以及web服务web配置。您的服务器上有一个wsHttpBinding绑定,客户端上有一个basicHttpBinding绑定。我确信其中一个是不正确的,请检查服务器和客户端绑定并启动wcf日志记录。当您第一次在Visual Studio中创建servicereference时,您的web服务不是HTTPS吗?如果是这样,作为一种快速而肮脏的解决方案,您可以尝试删除引用,从ServiceReferences.ClientConfig中删除条目,然后从您现有的web服务中添加所有新的绑定。我非常确定我使用的是HTTPS绑定,所以我在我的项目中尝试了一个新绑定以及web服务web配置。您的服务器上有一个wsHttpBinding绑定,客户端上有一个basicHttpBinding绑定。我确信其中一个是不正确的,请检查服务器和客户端绑定并启动wcf日志记录。当您第一次在Visual Studio中创建servicereference时,您的web服务不是HTTPS吗?如果是这样,作为一种快速而肮脏的解决方案,您可以尝试删除引用,从ServiceReferences.ClientConfig中删除条目,然后从现有web服务中添加所有新条目。提供客户端和服务器端绑定。正如@peer所说,创建这个错误肯定是不匹配的@Dhawalk说,你能发布完整的服务配置吗?尽管您可能已经为绑定定义了更大的值,但有可能由于一些原因(取决于配置中的内容以及所使用的.NET版本)而不使用这些值。请提供客户端和服务器端绑定。正如@peer所说,创建这个错误肯定是不匹配的@Dhawalk说,你能发布完整的服务配置吗?尽管您可能已经为绑定定义了更大的值,但也有可能由于一些原因(取决于配置中的内容以及所使用的.NET版本)而不使用这些值。