Domanda

Ho un'app ASP.NET 3.5 e provo ad aggiornare un pannello di aggiornamento che ha un controllo personalizzato nidificato. In quel controllo personalizzato c'è un ComponentArt Gird, che viene riempito da quasi 13 MB di dati (Sì, potrei scaricarlo ...) in questo aggiornamento.

Ho un pulsante nascosto all'interno del pannello di aggiornamento, che innesco da JS dal lato client, quando ho bisogno di updatePanel e della griglia.

Quando chiamo il metodo Update durante asyncPostback con Updatepanelxyz.Update (), in seguito ricevo un asyncPostBackError che dice che JSonSerializer non è in grado di raccogliere questa quantità di dati. Dovrei aumentare il valore specificato.

In effetti. Inteso. Ma quando cambio questo valore in web.config, funziona solo fino a circa 8 MB, ma non di più. Esiste un limite per JSonSerializer in quel caso. Ho impostato il valore sul valore massimo di Int32, che è una specie di 1000x del valore predefinito, che è già sufficiente per 4 MB di dati serializzati.

Qualche suggerimento? Un modo per forzare il serializzatore affinché ciò accada? Un modo per usare un altro serializzatore?

Saluti, Steve

È stato utile?

Soluzione

La soluzione migliore è cambiare la proprietà ScriptingJsonSerializationSection.MaxJsonLength nella sezione web.config.

L'impostazione predefinita è 102400 caratteri, in contrasto con il limite della classe JsonSerializer di 2097152 caratteri.

Vedi:

Proprietà maxJsonLength della classe JsonSerializer

e

Proprietà lunghezza massima sezione configurazione JsonSerialization

Come ho accennato in precedenza, la modifica della proprietà della sezione di configurazione è purtroppo l'unico modo per procedere.

Altri suggerimenti

Amico, 1 mb di dati è troppo - perché diamine hai bisogno di 13?

Penso davvero che devi refactificare la tua interfaccia utente. Non mi interessa quanto sia veloce la tua rete, è solo roba da matti!

Sono assolutamente d'accordo che l'interfaccia utente e il livello DataAccess necessitano di un refactor, ma per un breve periodo stavo solo cercando una soluzione semplice e veloce per aiutare il mio cliente fino a quando non verrà pubblicato il prossimo aggiornamento del software.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top