Occasionalmente il nostro sito rallenta e l'utilizzo della RAM aumenta in modo massiccio. Quindi il pool di app si arresta e devo riavviarlo. Poi va bene per alcuni giorni prima che la RAM improvvisamente picchi di nuovo e il pool di app si fermi presto. La CPU non è alta.foreach si blocca misteriosamente sul primo elemento di un ResourceSet
Prima che il pool di app si arresti, ho notato che una delle nostre pagine si blocca sempre. La linea si blocca su un foreach su un ResourceSet:
var englishLocations = Lang.Countries.ResourceManager.GetResourceSet(new CultureInfo("en-GB"),true,true);
foreach(DictionaryEntry entry2 in englishLocations) // THIS LINE HANGS
Abbiamo lo stesso codice distribuito su una scatola di diverso e questo non accade. Le principali differenze tra le due caselle sono:
Bad scatola
- Window Server 2008 R2 Standard SP 1
- IIS 7.5.7600.16385
- .NET 4.5
- 24GB RAM
Buona scatola
- Window Server 2008 Server SP 2
- IIS 7.0.6000.16386 SP 2
- .NET 4.0
- 24GB RAM
Ho provato ad aggiungere uploadReadAheadSize = "0" al web.config come descritto qui:
Quale non ha funzionato.
Perché dovrei aspettare? È sospeso sul primo oggetto, in realtà sul foreach.
Grazie.
Sei sicuro? Perché le dimensioni del file delle risorse saranno molto importanti. Se la dimensione del file di risorse è grande, esiste la possibilità che il riempimento della var con i valori del file di risorse possa essere un problema reale. Prova a dare alla variabile un tipo di dati –
, ne sono sicuro, da debugging per settimane. Il file di risorse contiene 250 voci. Ho molti più file di risorse per coprire diversi elementi del sito. –
Forse c'è un problema con le risorse di fallback. Hai provato a chiamarlo senza caricare fallback, come'GetResourceSet (new CultureInfo ("en-GB"), true, FALSE); '? – developer10214