J'ai un scénario dans lequel je dois pouvoir utiliser le Microsoft.WindowsAzure.ServiceRuntime
en dehors d'un rôle Web/Worker.Référence Microsoft.WindowsAzure.ServiceRuntime en dehors d'un rôle Web ou Worker
Plus précisément, j'ai le code suivant
public static RoleInstanceEndpoint ResolveIP()
{
if (RoleEnvironment.IsAvailable)
{
RoleInstance instance = RoleEnvironment.CurrentRoleInstance;
RoleInstance RelatedWCFInstance = RoleEnvironment.Roles["MyServiceRoleName"]
.Instances
.Where(o => o.UpdateDomain == instance.UpdateDomain)
.FirstOrDefault();
if (RelatedWCFInstance != null)
return RelatedWCFInstance.InstanceEndpoints.Where(o => o.Value.Protocol == "tcp").FirstOrDefault().Value;
}
return null;
}
Ce code exécute avec succès lors de l'exécution dans l'événement RoleEntryPoint.OnStart
mais lorsque je tente d'exécuter ce code dans un exe séparé qui est déclenchée par des tâches de démarrage Azure comme celui-ci
<Startup>
<Task commandLine="StartupMagic.exe" taskType="simple" executionContext="elevated" />
</Startup>
Je reçois l'erreur suivante
The type initializer for 'Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment' threw an exception.
Est-ce que quelqu'un pourrait confirmer s'il est possible de faire référence à cette bibliothèque en dehors d'un rôle Web ou Worker? et si oui, donnez-vous des conseils sur ce que je pourrais faire de mal?
Qu'est-ce que InnerException? – SLaks
Bonne question, donnez-moi une minute pour redéployer et vérifier ... –
Bravo! "L'assemblage en mode mixte est construit sur la version 'v2.0.50727' de l'environnement d'exécution et ne peut pas être chargé dans le runtime 4.0 sans informations de configuration supplémentaires." –