я не собираюсь говорить об ошибкеWCF - Ошибка при получении большого объема данных
Максимальный размер сообщения квоты для входящих сообщений (65536) был превышен. Чтобы увеличить квоту, используйте свойство MaxReceivedMessageSize для соответствующего элемента привязки.
Я услугу ФОС, который подключается к Microsoft Dynamics CRM, я начал проект как .NET 4.5 однако сервер, на котором он будет размещен может размещаться только .NET 3.5.
Когда я изменил структуру проекта WCF, некоторые Операционные контракты перестали работать, когда данные, которые он возвращает, являются средними (как 1000 элементов внутри массива).
Я проверил XML, и он имеет ~ 1mb, поэтому я не думаю, что речь идет о Quotas.
Ошибка я получаю:
Клиент нашел тип содержимого ответа на '', но ожидаемый 'текст/XML'. Ошибка запроса с пустым ответом.
Server Side:
public account[] GetX(DateTime? Range)
{
Service svc = Helper.CreateService();
account[] arr = null;
if (Range == null)
arr = svc.GetAllX();
else
arr = svc.GetAllXByDate(Range.Value);
return arr;
}
Web-Config system.serviceModel:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="myBasicHttpBinding" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="32" maxStringContentLength="2147483647"
maxArrayLength="16348" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="OROC.Proxy.ProxyService" behaviorConfiguration="ServiceBehaviors">
<endpoint name="Endpoint"
binding="basicHttpBinding"
bindingConfiguration="myBasicHttpBinding"
contract="OROC.Proxy.IProxyService" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehaviors">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="false"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<!--<protocolMapping>
<add binding="basicHttpsBinding" scheme="http" />
</protocolMapping>-->
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
</system.serviceModel>
О, и ошибка происходит, когда это возвращение предметов, а не в обратном обр ;, сразу после окончания метода. Скрипач ловит все XML, так что я думаю, что проблема стороне клиента
EDIT 1 04/10/2014 10:09
стороне клиента:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
<bindings>
<basicHttpBinding>
<binding name="myBasicBinding" maxBufferSize="2147483647" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="128" maxStringContentLength="2147483647" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="ServiceBehaviour">
<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
</behavior>
</endpointBehaviors>
</behaviors>
<client>
<endpoint name="basicEndpoint"
address="http://localhost:58364/ProxyService.svc"
binding="basicHttpBinding"
bindingConfiguration="myBasicBinding"
contract="*"
behaviorConfiguration="ServiceBehaviour">
</endpoint>
</client>
</system.serviceModel>
EDIT 2 04/10/2014 10:34
Я протестировал XML с IE, и он не разобрался правильно, однако, когда Я открыл xml с визуальной студией, он предупредил меня о символах Юникода, и он заменил их, затем я сохранил файл и снова открыл IE, и он был правильно разобран. Эта информация может быть полезна.
Кто-нибудь имеет идеи? Спасибо заранее.
Я обновил пост проверить ** EDIT 1 ** –
нормально я обновил снова пост –
Что делать, если вы просто отправить 1 элемент в массиве делает эту работу ? –