2013-08-20 1 views
1

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?

+0

Qu'est-ce que InnerException? – SLaks

+0

Bonne question, donnez-moi une minute pour redéployer et vérifier ... –

+0

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." –

Répondre

1

Vérification de l'innerException a donné lieu à montrer le message suivant:

« montage en mode mixte est construit contre la version « v2.0.50727 » de l'exécution et ne peut pas être chargé dans la version 4.0 d'exécution sans informations de configuration supplémentaires. » La solution décrite dans Mixed mode assembly is built against version ‘v2.0.50727′ of the runtime a permis de résoudre ce problème.

Questions connexes