Domanda

Voglio effettuare un'applicazione di Windows Azure come resistente ai guasti il più possibile e devo essere in grado di effettuare il crash dei ruoli intenzionalmente per testare come l'intera applicazione recupera da tali arresti anomali.

Immagino di poter inserire il codice giusto nel ruolo che otterrebbe un numero casuale e decidere di arrestirsi con una probabilità piuttosto bassa.Il vero problema è

if( isTimeToCrash() ) {
   //what exactly do I do here?
}
.

Come bloccare un ruolo una volta che decido che è tempo.

Come faccio a crollare in modo affidabile un ruolo azzurro intenzionalmente?

È stato utile?

Soluzione

È possibile RDP nella macchina o utilizzare un'attività di avvio per aggiungere un'attività pianificata che ucciderà periodicamente il processo 'waappagente'.PowerShell è abbastanza buono qui per trovare e uccidere il processo.Devi essere un amministratore per farlo.Ciò interromperà la comunicazione con il controller del tessuto per un periodo di tempo finché non riprende e riavvia il processo.IIRC, ucciderà anche il tuo codice RoleEntryPoint (correndo sotto Wawebhost o Waworkerhost).Che simularà un fallimento piuttosto grande.

Se si desidera ottenere veramente elegante, eseguire un'attività di avvio di background che ascolta una coda e ucciderà il processo su richiesta quando vede un messaggio di coda.Nota, non inseriresti questo codice nel punto del ruolo del ruolo, sarebbe necessario essere un'attività di avvio in esecuzione come "sfondo" o uccideresti anche il processo che si schianta il tuo ruolo.

Altri suggerimenti

Non sono sicuro di schiantarsi un ruolo, ma usando l'API di gestione dei ruoli È possibile Riavvia un ruolo .Puoi guardare questo Esempio

Per un ruolo lavoratore, puoi lanciare un'eccezione dalla tua corsa () e lasciarlo andare non gestito.Tuttavia, non so se questo soddisfa la tua qualifica come "crash" - il ruolo sarebbe riconosciuto con grazia.

I ruoli tendono a catturare eccezioni non gestite via IIS, quindi il suggerimento di Dunny probabilmente ti avvicina molto all'ASOD (Schermo Azure della morte) che stai cercando.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top