Wir verschieben derzeit einige Instanzen unserer Anwendung in Azure, behalten jedoch weiterhin die Abwärtskompatibilität mit vorhandenen Instanzen, die nicht von Azure gehostet werden.Erkennen, ob eine .NET-App in Azure oder in einer Nicht-Azure-Umgebung ausgeführt wird
Gibt es eine gute Möglichkeit, die Umgebung zu erkennen, ohne das SDK auf dem Nicht-Azure-Produktionsserver zu installieren?
Ich habe versucht, mit:
if (RoleEnvironment.IsAvailable)
von Microsoft.WindowsAzure.ServiceRuntime, und es funktioniert perfekt lokal und in Azure. Allerdings muss ich die Microsoft.WindowsAzure.ServiceRuntime.dll zu Copylocal setzen, und selbst dann erhalte ich:
konnte nicht geladen werden Datei oder Assembly ‚msshrtmi, Version = 2.2.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' oder eine ihrer Abhängigkeiten
Es scheint nicht ein NuGet Paket zu sein, und ich will nicht manuell über die msshrtmi dLL kopieren.
Vielleicht gibt es eine Möglichkeit der Erkennung ohne die Abhängigkeit von Microsoft.WindowsAzure.ServiceRuntime?
Dank Greg mit - ich am Ende eines Config-Transformation up mit einem Schalter zu schaffen. Wäre schön gewesen, wenn es einen Weg zur automatischen Erkennung gäbe, aber egal. Nochmals vielen Dank für eine umfassende Antwort! –