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.

War es hilfreich?

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).

auftreten

Es 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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top