ошибочное поведение Preload ()

У меня есть приложение WCF, размещенное в Windows Azure. Это IIS v8.0

я использовалIProcessHostPreloadClient's Preload() способ прогрева приложения

Теперь у меня есть две проблемы здесь:

1) всякий раз, когда мой пул приложений перезагружается,Preload() функция вызывается дважды. У меня есть некоторые статические переменные, которые инициализируются вpreload() метод, который будет сохраняться в моем рабочем процессе(w3wp.exe).

То, что я увидел, интересно:

Мой текущий рабочий процессID является (w3wp.exe 1234,сказать)

при переработке,preload вызывается дважды:

1-й раз: в w3wp.exe, который имеет процессID: 5678скажем (новый рабочий процесс)

2-й раз: в w3wp.exe, который имеет процессID: 1234 (так же, как выход)

Теперь я настроил свой пул приложений так, чтобы присутствовал только один экземпляр w3wp.exe. Следовательно, после перезагрузки существует файл w3wp.exe с идентификатором процесса: 5678.

Мой вопрос, почему умирающий w3wp.exe с идентификатором процесса: 1234 выполнил предварительную загрузку

Между ними есть разрыв в 3 мс.

РЕДАКТИРОВАТЬ Я только что узнал, что именно из-за перезапуска пула приложений старый w3wp.exe завершается и запускается новый w3wp.exe. То, что вызывает предварительную загрузку, которая будет вызвана дважды:

1) новый процесс w3wp.exe - вызывает вызов preload () для нового процесса (ID процесса: 5678 в нашем примере)

2) старый процесс w3wp.exe (ID процесса: 1234): его домен приложений перезапускается перед тем, как его убить. Следовательно, при перезапуске домена приложения вызывается preload ()

Теперь мой вопрос: почему перезапущен домен приложения умирающего w3wp.exe? Это должно было умереть в любом случае в следующие 3 мс (как упоминалось выше)

2) Я запустил сервис и проводил некоторое тестирование. В течение некоторого времени рабочий процесс не обслуживал никаких запросов. Но мой w3wp.exe имеет поток, который работает непрерывно.

То, что мы наблюдаем через некоторое время, было то, что существующий экземплярw3wp.exe (скажем, идентификатор процесса 1234) внезапно завершился и preload () был вызван в том же процессе (w3wp.exe с идентификатором процесса 1234)

Я предполагаю, что по какой-то причине предварительная загрузка была вызвана снова. Раньше я думал, что предварительная загрузка будет вызываться только тогда, когда будет создан новый w3wp.exe (в свою очередь, это означает, что пул приложений был переработан)

Такое поведение наблюдалось дважды Может кто-нибудь сказать мне что-нибудь об этом

РЕДАКТИРОВАТЬ

Ответ: Частично: из-за перезапуска домена приложения. Я до сих пор не знаю, почему перезапустился app-домен

Ответы на вопрос(0)

Ваш ответ на вопрос