Mam problemy z określaniem obiektu dataContractSerializer maxItemsInObjectGraph w pliku web.config hosta.Dane usługi WCFContractSerializer maxItemsInObjectGraph in web.config
<behaviors>
<serviceBehaviors>
<behavior name="beSetting">
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="True" />
<dataContractSerializer maxItemsInObjectGraph="2147483646"/>
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="MyNamespace.MyService"
behaviorConfiguration="beSetting" >
<endpoint address="http://localhost/myservice/"
binding="webHttpBinding"
bindingConfiguration="webHttpBinding1"
contract="MyNamespace.IMyService"
bindingNamespace="MyNamespace">
</endpoint>
</service>
</services>
Powyższe nie ma wpływu na pobieranie danych. Serwer przekroczył limit czasu z powodu dużej ilości danych.
mogę jednak określić maksymalną granicę w kodzie i że działa
[ServiceBehavior(MaxItemsInObjectGraph=2147483646, IncludeExceptionDetailInFaults = true)]
public abstract class MyService : MyService
{
blah...
}
Czy ktoś wie dlaczego nie mogę zrobić tę pracę poprzez ustawienie web.config? Chciałbym zachować w web.config, aby łatwiej było w przyszłości aktualizować.
Mam również ten problem. Zastanawiam się, dlaczego nikt nie odpowiedział? Dzięki za podpowiedź, że mogę ustawić "ServiceBehavior" w kodzie, może przynajmniej zachęcić mnie do działania. – jocull
Wiesz, że maxItemsInObjectGraph definiuje tylko całkowitą liczbę dozwolonych elementów w odpowiedzi, a nie całkowity rozmiar odpowiedzi, tak? (Myślę, że jeśli nie jest określony, domyślnie jest to 60k xml elementów) –
Dave, czy twoje pytanie było odpowiedzią, czy nie? Jeśli podana odpowiedź rozwiązała Twój problem, oznacz go jako "tak". – Bardia