Иногда наш сайт замедляется, а использование ОЗУ растет очень высоко. Затем пул приложений останавливается, и я должен перезапустить его. Затем это нормально в течение нескольких дней, прежде чем ОЗУ внезапно всплескается снова, и вскоре пул приложений прекратится. CPU невелик.
До остановки приложения я заметил, что один из наших страниц всегда зависает. Линия, на которой он висит, является foreach в ResourceSet:
var englishLocations = Lang.Countries.ResourceManager.GetResourceSet(new CultureInfo("en-GB"),true,true);
foreach(DictionaryEntry entry2 in englishLocations) // THIS LINE HANGS
У нас есть тот же код, который разворачивается в другом поле, и этого не происходит. Основные отличия между двумя полями:
Плохая коробка
- Window Server 2008 R2 Standard SP 1
- IIS 7.5.7600.16385
- .NET 4.5
- ОЗУ 24 ГБ
Хорошая коробка
- Окно Server 2008 Server SP 2
- IIS 7.0.6000.16386 SP 2
- .NET 4.0
- ОЗУ 24 ГБ
Я попытался добавить uploadReadAheadSize = "0" в web.config, как описано здесь:
Что не сработало.
Почему бы не повесить? Он висит на самом первом предмете, фактически на foreach.
Спасибо.