Freigeben über


Errore "La raccolta server non può essere vuota" quando si utilizza la memorizzazione nella cache di Azure AppFabric in un'applicazione Windows Form

Articolo originale pubblicato giovedì 27 ottobre 2011

Ho avuto un problema che, purtroppo, poche persone hanno riscontrato nell'utilizzo della funzionalità di memorizzazione nella cache di AppFabric di Windows Azure.  Si tratta della versione finale del meccanismo di memorizzazione nella cache conosciuto precedentemente come Velocità.  Quando riscontrate un problema con la factory di memorizzazione nella cache utilizzata dalla funzionalità, nella maggior parte dei casi verrà visualizzato il messaggio di errore "La raccolta server non può essere vuota".  Purtroppo si tratta di un errore generico spesso difficile da rintracciare.  In questo caso specifico creava ulteriori perplessità: era presente un assembly autonomo compilato che utilizzava la cache.  Quando ho chiamato tale assembly da un ruolo di lavoro di Azure non veniva visualizzato alcun errore.  Quando tuttavia aggiungevo un riferimento all'assembly alla mia applicazione di prova Windows Form e tentavo di eseguirla, veniva restituito l'errore temuto.

Dopo vari tentativi infruttuosi e una buona dose di frustrazione, ho finalmente capito quale fosse il problema.  Anche se dall'applicazione Windows Form non venivano chiamate direttamente le classi di memorizzazione nella cache, era il processo host.  Ciò significa che era necessario aggiungere tutte le voci di configurazione della cache presenti nell'applicazione del ruolo di lavoro al file app.config  dell'applicazione Windows Form.  Dopo avere aggiunto queste voci, i problemi sono stati risolti.

Questo tipo di scenario è piuttosto comune, ma poiché è difficile individuare la causa di questo errore ho pensato fosse utile illustrarlo per chi riscontrasse lo stesso problema.

Questo è un post di blog localizzato. Consultate l'articolo originale: Server Collection Cannot Be Empty Error When Using Azure AppFabric Caching in Winforms Application