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