2010-10-04 9 views
5

J'ai un service de structure d'application que je veux tester. (http://xxx.cloudapp.net:8081/service.svc).
J'ai créé une application console et a ajouté une référence de service au service et a obtenu l'erreur suivante:Azure: Impossible de charger le fichier ou l'assemblage 'Microsoft.ServiceBus

Could not load file or assembly 'Microsoft.ServiceBus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

J'ai ajouté une référence à Microsoft.ServiceBus de C: \ Program Files (x86) \ plate-forme Windows Azure AppFabric SDK \ V1.0 \ Assemblies \ NET4.0

Je mis tous les ensembles dans mon projet à copier local = True, comme le suggère ici: http://msdn.microsoft.com/en-us/library/ee706702.aspx

Due diligence supplémentaire: J'ai ouvert Microsoft.ServiceBus en rouge le réflecteur -gate confirmé que c'est la bonne version. Juste pour les coups de pied, j'ai également ajouté des références à chaque ensemble référencé dans le réflecteur et mis toutes les références à copier local = true.

D'autres idées?

... Peter

+0

L'erreur est levée par le service lorsque vous l'appelez ou par l'application de console lorsque vous essayez d'exécuter il? – knightpfhor

+0

Il est lancé à partir de l'application de la console lorsque j'essaie d'appeler l'une des méthodes sur le service. –

Répondre

3

Lorsque vous faites référence Microsoft.ServiceBus.dll, référence à partir de l'emplacement d'installation, par exemple,

C:\Program Files (x86)\Windows Azure platform AppFabric
SDK\V1.0\Assemblies\NET4.0\Microsoft.ServiceBus.dll

... pas du GAC, et définir une copie locale à vrai.

Vous devez effectuer cela dans tout ce que vous déployez dans Azure; Microsoft.ServiceBus.dll doit être empaqueté avec votre projet car il n'est pas disponible par défaut dans Azure.

Si vous lancez Fiddler, vous voyez une erreur 500 lors de l'appel du service. Cela prouve que l'exception n'est pas dans votre application d'appel.

1

dll ServiceBus n'est pas installé sur les boîtes Azure

  1. Assurez-vous que votre référence aux Précise d'assemblage copie locale
  2. assurez-vous aussi ne pas avoir des références au bus de service dll dans les projets supérieurs qui ne copient PAS local (cela pourrait être votre problème si vous avez vérifié 1 ci-dessus)

Vous pouvez vérifier l'arbre CSX pour y notre dossier de construction azur pour voir si l'assemblage est copié dans le paquet final. C'est beaucoup plus rapide que le téléchargement sur azure ou le démarrage du tissu dev.

Cela devrait résoudre votre problème

+0

Merci Rajesh pour la réponse. Je n'ai pas compris ce que vous vouliez dire par ServiceBus n'est pas installé sur les boîtes Azure. La façon dont je l'ai compris, il n'a pas de sens que MS n'installe pas un DLL requis pour Azure sur leurs propres boîtes.Il s'avère que j'avais besoin de l'ajouter au projet azure, qui s'installe sur les boîtes azurées. –

4

Assurez-vous de modifier le cadre cible (Propriétés du projet/onglet Application) de '.NET Framework 4 Client Profile' à '.NET Framework 4'. J'ai trouvé un article similaire et c'est ce qui m'a aidé. Je crois qu'il doit avec le fait que Microsoft.ServiceBus n'est pas pris en charge par le profil client de .NET 4.

+0

+1 peut confirmer cela a fonctionné pour moi – SeanCocteau

Questions connexes