Posts
163
Comments
244
Trackbacks
6
maggio 2010 Entries
The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine


Convertendo un vecchio progetto che fa ancora uso di Access (ehhh lo so….) e testandolo sulla mia macchina attuale a 64 bit, mi è saltato fuori l’errore seguente:

The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine

L’errore è dovuto al fatto  che non esiste una versione a 64 bit del provider Jet. La soluzione è abbastanza semplice: è sufficiente modificare la configurazione da Visual Studio “targettizzando” direttamente la piattaforma x86.

posted @ lunedì 31 maggio 2010 11.47 | Feedback (2)
System.Lazy<T> e il pattern Singleton


Il namespace System.Lazy<T> è una nuova introduzione del Framework .NET 4.0. Le sue potenzialità sono notevoli e in questo post viene descritto un esempio molto elegante con cui implementare il pattern Singleton.

posted @ mercoledì 26 maggio 2010 14.37 | Feedback (0)
Aumentare la dimensione dei JSON modificando la proprietà maxJsonLength


In certe situazione potrebbe capitare di ricevere questo errore:

Error during serialization or deserialization using the JSON JavaScriptSerializer. The length of the string exceeds the value set on the maxJsonLength property.

Come è facile intuire dal messaggio, l’errore si ha quando si tenta di serializzare o deserializzare un JSON la cui dimensione sia maggiore rispetto a quella di default. Nel mio caso l’errore si aveva durante la chiamata ad un PageMethods fatta tramite jQuery. I dati passati infatti risultavano essere troppo grandi.

La proprietà maxJsonLength è quella che controlla la dimensione massima dei dati JSON e può essere modificata da web.config:

   1: <System.Web.Extensions> 
   2:     <Scripting> 
   3:       <WebServices> 
   4:         <JsonSerialization MaxJsonLength="500000"> 
   5:         </JsonSerialization> 
   6:       </WebServices> 
   7:     </Scripting> 
   8: </System.Web.Extensions>

Leggendo la documentazione ufficiale viene indicato che la dimensione di default è di 2097152 caratteri pari a 4 Mb di dati Unicode. Questo però nel mio caso non è vero, dato che, pur passando meno dati di questo limite, ricevo l’errore sopra indicato.

Utilizzando le due righe di codice seguenti, ho verificato che il limite nel mio caso (Framework .NET 3.5 SP1) è di 102400 caratteri, quindi ben inferiore al limite indicato nella documentazione.

   1: String sectionName = "system.web.extensions/scripting/webServices/jsonSerialization";
   2: ScriptingJsonSerializationSection jsonSection =
   3:     (ScriptingJsonSerializationSection)WebConfigurationManager.GetSection(sectionName);
   4: Response.Write(jsonSection.MaxJsonLength);
posted @ lunedì 3 maggio 2010 12.03 | Feedback (1)
News
Se volete sapere con chi avete a che fare eccomi qui in uno "scatto" lavorativo.

La mia foto

Logo MCAD
Logo MCTS