Wie zu erkennen, dass Azure-Anwendung in der Entwicklung Gewebe läuft?
-
04-10-2019 - |
Frage
Wie kann ich erkennen, ob meine Zuverlässigkeit Azure-Anwendung in der Entwicklung Gewebe läuft und nicht in ‚die Cloud‘?
ist RoleEnvironment.IsAvailable gilt für beide. Ich möchte etwas, das nur in einem Fall wahr ist.
Ich frage das, weil ich Nutzer von meiner Bibliothek wollen in DEV Stoff kostenlos meine Bibliothek in der Lage sein zu verwenden. Daher manuell getrennte Kennung oder Flag in der Konfigurationsdatei setzen und hält zwei Konfigurationen für Entwickler und deploy nicht durchführbar ist.
Lösung
Eine Möglichkeit ist, einen Blick auf RoleEnvironment.DeploymentId
aufzunehmen - wenn Sie in der dev Stoff laufen lassen, sollte es einen Namen wie haben ‚Deployment (n)‘, wobei n einige laufende Nummer. Wenn Sie in der Produktion laufen lassen, sollte der Einsatz-ID ein Guid ähneln.
Eine andere Sache, die Sie tun können, ist Blick auf den Instanznamen Rolle. In der Produktion, sollte es in _0
(entspricht Beispiel 0) enden. Im dev Stoffe, wird es in .0
Ende
EDIT 2013.01.08 - diese Antwort wurde mir klar, gab mehr als 2 Jahren ziemlich veraltet ist! Jetzt gibt es auch RoleEnvironment.IsEmulated
- schauen Sie sich die Details hier .
Andere Tipps
Die Windows Azure SDK 1.5 eingeführt RoleEnvironment.IsEmulated static bool Eigenschaft von Code, um zu bestimmen, ob die Rolle Instanz im Windows Azure Compute Emulator ausgeführt wird. Diese Informationen können auch auf Startaufgaben übergeben werden. Es ist ein großer Artikel von Steve Marx darüber.
Zum Beispiel:
Die Entwicklung Gewebe simulieren nicht vollständig das Verhalten des Windows Azure Load Balancer. Zum Beispiel, wenn Code in einer Web-Rollen-Instanz läuft die SetBusy Methode aus dem RoleEnvironment.StatusCheck Event-Handler aufruft, um anzuzeigen, dass die Rolle Instanz entnommen Rotation des des Lastenausgleichs werden soll, werden Sie noch in der Lage sein, Ihre Rolle für den Zugriff von Ihrer Browser, während sein Status ist RoleInstanceStatus.Busy.
Auch azur Gewebe läuft normalerweise unter eines der wenigen festen OS Images . So können Sie auch System.Environment untersuchen. für einige Muster, die nur in azur Gewebe (das heißt spezifische OS-Version Anpassung an Windows Azure OS oder ähnliches).
auftretenEs ist eine sehr einfache Technik, die ich für eine Weile verwendet haben - und finde mich es häufig verwendet wird. Der Trick ist, eine Umgebungsvariable auf Ihrer dev Maschine zu setzen und grundlegende DOS-Batch-Datei (oder Powershell) Techniken, springt über die Dinge, die Sie nicht wollen, wenn diese Variable vorhanden ist. Diese Umgebungsvariable wird in der Cloud nicht vorhanden sein.
ich darüber gebloggt hier: Azure FAQ: Kann ich eine Startaufgabe erstellen, die ausgeführt wird, nur wenn wirklich in der Cloud