2012-02-08 7 views
6

In un servizio WCF 4.0 riceviamo un'enorme quantità di dati in un elenco generico. Questo grafico a elenco è più grande del limite predefinito di 65536. Ci siamo abituati, quindi abbiamo configurato il servizio per poter ottenere quei grandi grafici.Numero massimo di elementi che possono essere serializzati o deserializzati in un oggetto grafico ... con tipi noti

<serviceBehaviors> 
    <behavior> 
     <dataContractSerializer maxItemsInObjectGraph="2147483647" /> 
    </behavior> 
    </serviceBehaviors> 

Con il pezzo di sopra di configurazione XML abbiamo evitato il problema in passato senza alcun problema, ma ora non funziona. L'unica differenza è che qui stiamo usando KnownTypes negli enormi elenchi di elementi che stiamo cercando di deserializzare nel metodo WCF.

Forse, mi manca qualche configurazione speciale per i tipi noti?

+0

E si è certi che la sua l'MaxItemsInObjectGraph che viene superato e non, per esempio, il MaxReceivedMessageSize? –

+0

l'eccezione è chiara 'Il numero massimo di elementi che possono essere serializzati o deserializzati in un oggetto grafico è' 65535 ':( –

+0

Il servizio dichiara un attributo behaviorConfiguration? Se così non verrà rilevato quello predefinito sopra –

risposta

7

Non dimenticare di controllare la configurazione del client.

Vedi risposte simili in How to fix MaxItemsInObjectGraph error?

È necessario impostare la MaxItemsInObjectGraph sul DataContractSerializer utilizzando un comportamento sia sul client e servizio.

e maxItemsInObjectGraph ignored

avevo dimenticato di mettere questa impostazione nel mio client di file app.config

.

1

Con riferimento alla http://wcf.codeplex.com/discussions/258278, inserire il seguente ServiceBehavior attributo definizione della classe come segue:

[ServiceContract] 
[ServiceBehavior(MaxItemsInObjectGraph = int.MaxValue)] 
public class MaintenanceResource 
+0

In produzione si consiglia di specificare il valore previsto reale, piuttosto che MaxValue, e il file di configurazione è un'opzione flessibile, ma l'attributo non è flessibile. –