Имам внедрен WebAPI на Azure Cloud Service WebRole само с един екземпляр. Забелязах, че ако изчакам известно време на празен ход (няма HTTP заявки), тогава по-късно услугата е мъртва и всяка заявка към нея води до следния отговор:
{
Message: "An error has occurred."
}
Таблото за управление на Azure казва, че състоянието на екземпляра е Running. Отдалеченият работен плот разкрива, че наборът от приложения и уеб сайтът работят и че всички необходими услуги работят.
Никъде не мога да намеря подходящо съобщение за грешка...
Единственото решение, което намерих за горната ситуация, е да извърша рестартиране на Instance VM.
Тъй като предположих, че горното е резултат от време на неактивност, погледнах и открих, че по подразбиране самият набор от приложения има свойство за изчакване на неактивност, зададено на 20 минути, което води до изключване на работния процес в пула на приложения след достигане на времето за изчакване на неактивност . Успях да възпроизведа проблема, без да чакам времето за изчакване, като ръчно задействах рециклирането на набора от приложения.
Предполагам, че имам някакъв проблем с моята услуга, не мога да се възстановя правилно след изключване. Като доказателство, чист проект за услуга извън кутията не доведе до същото поведение.
Какво може да причини такъв проблем?
Може ли някой да ме насочи към правилната посока за отстраняване на грешки?
Къде мога да намеря полезно съобщение за проследяване на грешки?
Редактиране:
Използвам Autofac за IoC и изведнъж ми хрумна, че проблемът може да е, че IoC по някакъв начин се изчиства след рециклирането. Извършвам IoC регистрациите вътре в Application_Start()
от Global.asax.cs
.
Възможно ли е това да е проблемът?