Perché iis accetta richieste prima di RoleEentryPoint.onstart Returns?
-
28-10-2019 - |
Domanda
Sto giocando con il campione di Azure da qui su emulatore di calcolo e l'ho scoperto se lo faccio OnStart()
Nella mia classe ereditata da RoleEntryPoint
piuttosto lento a restituire la pagina .aspx nel ruolo web accetta le richieste HTTP anche prima OnStart()
ritorna.
Lo trovo piuttosto confuso: perché iis accettare richieste al ruolo che non è ancora iniziato?
Soluzione
L'emulatore non emula il bilanciamento del carico al 100%. Per il cloud, quando il tuo ruolo è in Onstart () sei segnalato all'LB come occupato e nessun traffico verrà instradato ad esso. Una volta tornato da Onstart () con vero, ci vorranno alcuni secondi o giù di lì, ma solo allora l'LB inizierà a instradarsi verso di esso. Puoi provarlo da solo tracciando nel tuo Onstart () e facendo un grande sonno () lì dentro. Non sarai in grado di raggiungere la tua istanza (oltre le porte non persanti).
Ovviamente puoi chiedere all'LB di ignorare lo stato pronto e si instraderà anche se occupato - che viene fatto specificando l'IGREREROLEINSTANCESTATUS = "TRUE" sull'endpoint.