我有一个WCF服务,应该将List
返回给我的客户端应用程序。数据库中的一列是byte[]
。当我尝试返回此Object列表时,我只得到一个带有此内部异常的NetDispatcherFaultException
:
“已超出最大阵列长度配额(16384) 读取XML数据。可以通过更改此配额来增加此配额 使用的XmlDictionaryReaderQuotas对象上的MaxArrayLength属性 在创建XML阅读器时。第1行,第38697位。“
我在此之后用Google搜索并发现我应该增加maxArrayLength
中的web.config
,所以我做了:
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https"/>
<add binding="basicHttpBinding" scheme="http"
bindingConfiguration="CrudserviceBinding" />
</protocolMapping>
<bindings>
<basicHttpBinding>
<binding name="CrudserviceBinding" maxReceivedMessageSize="52428800" >
<readerQuotas maxStringContentLength="10242880"
maxArrayLength="10242880" />
</binding>
</basicHttpBinding>
</bindings>
这是我在客户端的app.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_ICrudService">
<readerQuotas maxStringContentLength="5242880"
maxArrayLength="52428800" />
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost/My.Project/CrudService.svc"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_ICrudService"
contract="MobileCrudService.ICrudService"
name="BasicHttpBinding_ICrudService" />
</client>
</system.serviceModel>
</configuration>
当我再次尝试此操作时,WCF服务返回相同的异常。任何人都可以解释我应该如何处理这个问题?
答案 0 :(得分:1)
如果要在客户端的类库中调用该服务,请确保更改实际的Application .config文件。不要使用
Products/ProductName/Main/Source/Project_Name/bin/Debug/ProjectName.dll.config
改为使用
Products/ProductName/Main/Source/Project_EXE_Name/bin/Debug/YourExe.config