Перезапуск IIS вызывает ошибку доступа к статическому набору данных

В веб-сервисе asp.net у меня есть статический набор данных, который загружает данные (синхронизированные) при первом доступе. Однако, когда IIS перезапускает пул приложений, у меня возникает исключение из-за «Коллекция была изменена; операция перечисления может не выполняться».

Переработка запустит новый процесс, который создаст новый статический набор данных, запросы в старом рабочем процессе не будут получать доступ к новому статическому набору данных, как можно изменить коллекцию? Или это возможно, старый рабочий процесс завершается непосредственно перед завершением запросов?

Или я неправильно понимаю процесс рециркуляции? Вместо запуска нового рабочего процесса IIS запускает новый домен приложения в том же рабочем процессе? и старые и новые домены приложений используют один и тот же статический набор данных?


person Zhen.Lee    schedule 02.08.2010    source источник


Ответы (1)


Оказывается, эта ошибка не вызвана процессом рециркуляции. В процессе запуска синхронизация преждевременно вернула набор данных более позднему запросу/потоку, в то время как первый запрос/поток все еще заполняет его, вызывая исключение «Коллекция была изменена».

Как это часто бывает, я ищу ключ в ящике стола, где, по моему мнению, он должен быть, в то время как ключ лежит идеально на столе ящика. Иногда я просто ужасаюсь, что на самом деле видит разум, а не глаз. В этом случае, после того как я разместил вопрос, я понял, что смотрю не на то, просто потому, что, если это вызвано процессом повторного использования, я уверен, что кто-то уже должен опубликовать ответ.

Спасибо вам всем! Жень

person Zhen.Lee    schedule 03.08.2010