Exporter (0) Imprimer
Développer tout

Résolution des problèmes relatifs à Service Bus

Mis à jour: juin 2014

Les sections suivantes décrivent des problèmes qui peuvent survenir lors de l'écriture d'applications pour Microsoft Azure Service Bus et leur résolution.

Les sections suivantes décrivent comment résoudre les problèmes dans les applications Service Bus.

Symptôme

Une application Service Bus s'exécute sans erreur dans l'ensemble de développement, mais se bloque après son déploiement dans les serveurs .

Cause

Les assemblys Service Bus ne sont actuellement pas intégrés à la plateforme . Par conséquent, l'application essaie d'accéder à un assembly qui n'existe pas sur le serveur.

Solution

Ajoutez l'assembly Service Bus à votre package de déploiement (par exemple, définissez l'assembly sur Copie locale). Notez que par conséquent, vous devrez mettre à jour les assemblys manuellement.

Symptôme

Une application fonctionne lorsque les points de terminaison sont définis par programme, mais échoue lorsque ces mêmes paramètres de configuration sont stockés dans le fichier App.config associé. L'application génère l'erreur suivante :

System.Configuration.ConfigurationErrorsException : L'extension de liaison de configuration « system.serviceModel/bindings/netTcpRelayBinding » est introuvable. Vérifiez si cette extension de liaison est bien enregistrée dans system.serviceModel/extensions/bindingExtensions et qu'elle est écrite correctement.

Cause

Les assemblys Service Bus ne sont actuellement pas intégrés à la plateforme . Si le kit de développement logiciel est installé sur l'ordinateur local, le fichier Machine.config sera modifié pour ajouter plusieurs extensions Windows Communication Foundation (WCF), comme NetTcpRelayBinding. L'application peut alors trouver les informations utiles dans le fichier Machine.config, comme la section netTcpRelayBinding. Cela n'est pas le cas sur la plateforme , l'application ne peut donc pas y trouver les informations utiles.

Solution

Pour que votre configuration fonctionne avec , copiez les extensions du fichier Machine.config local vers votre fichier App.config. Sinon, les balises telles que netTcpRelayBinding ne seront pas reconnues. Cependant, si vous procédez ainsi, votre application ne s'exécutera pas localement en raison des extensions dupliquées. Par conséquent, vous devrez conserver deux versions du fichier App.config ; une localement et une pour . Il est recommandé d'effectuer cette tâche particulière par programme.

Les rubriques consacrées à la résolution de problèmes qui suivent contiennent des informations sur la connexion à Service Bus. Si vous ne trouvez pas la solution à votre problème dans cette section, vous pouvez également envisager l'une des possibilités suivantes :

  • Exécuter une trace réseau : le réseau est peut-être inactif. L'utilisation du moniteur réseau pour déterminer le statut du réseau peut vous aider à résoudre votre problème.

Symptôme

Lorsque vous tentez de vous connecter à Service Bus avec une application cliente, vous recevez l'erreur suivante :

Exception non prise en charge : System.ServiceModel.EndpointNotFoundException : Point de terminaison introuvable. Assurez-vous de pouvoir vous connecter à Internet à l'aide du port HTTP 80 et du port TCP 808.

Cause

Cette erreur s'explique de plusieurs façons :

Solution

  • Vérifiez si l'hôte est en cours d'exécution. Dans le cas contraire, il n'y a pas de point de terminaison auquel se connecter. Vous pouvez exécuter le service en appliquant l'une des deux méthodes qui sont décrites ici :

    1. Mode débogage : cliquez avec le bouton droit de la souris sur le projet de service dans l'Explorateur de solutions Visual Studio, cliquez sur Débogage. Puis cliquez sur Démarrer une nouvelle instance. Après le démarrage du service, répétez cette procédure pour le client. Notez que vous pouvez déboguer le client même si le service est déjà en cours d'exécution.

    2. Mode débogage extérieur : définissez votre projet de service en tant que projet de démarrage. Dans le menu Débogage, cliquez sur Exécuter sans débogage. Ainsi, malgré l'exécution de l'application de service, Visual Studio n'est pas affecté. Après le démarrage du service, définissez le projet de client comme projet de démarrage, puis exécutez-le.

  • Assurez-vous d'avoir défini la propriété Copie locale pour l'assembly Microsoft.ServiceBus.dll (dans Visual Studio) sur la valeur true. Aucun kit de développement logiciel n'est installé sur les serveurs du nuage. Vous devez par conséquent inclure l'assembly à votre package. Sans cela, votre rôle de travail ne s'exécutera pas correctement.

  • Confirmez que vous pouvez bien vous connecter à Internet à l'aide du port HTTP 80 et du port TCP 808.

Symptôme

L'application ne peut pas se connecter à Service Bus et renvoie le message d'erreur suivant :

« Le client n'est pas en mesure de faire aboutir la négociation de sécurité dans le délai d'attente imparti (00:01:00). La section de négociation actuelle est 1 (00:00:59.9429968). »

Cause

Les informations d'authentification sont peut-être mal définies.

Solution

Vérifiez si vous authentifiez le client. Plus précisément, vérifiez si vous avez défini RelayClientAuthenticationType sur None. La valeur par défaut est RelayAccessToken, ce qui nécessite que vous fournissiez une revendication d'authentification, comme un secret partagé. Cependant, si vous définissez manuellement la valeur sur None, le client ne devrait pas fournir d'authentification.

Si vous n'avez pas défini le type d'authentification, RelayClientAuthenticationType prendra probablement la valeur par défaut RelayAccessToken. Dans ce cas, vérifiez si votre revendication d'authentification est spécifiée correctement. Pour plus d'informations, consultez Sécurisation et authentification d'une connexion Service Bus.

Symptôme

Lorsque vous tentez de vous connecter à Service Bus, vous recevez l'erreur suivante :

« Une erreur s'est produite lors de la vérification de la sécurité du message. »

Cause

Une cause possible de cette erreur est que l'heure UTC de l'ordinateur local est en avance sur l'heure UTC du serveur Service Bus. Par exemple, l'horodatage UTC local est peut-être 8:06, alors que sur le serveur, il est 8:05. Le serveur considère cet horodatage comme non valide et génère le message d'erreur qui est mentionné dans la section « Symptômes ».

Solution

Confirmez que l'heure UTC de l'ordinateur local est correcte. Si nécessaire, reculez manuellement l'horloge de quelques minutes. Le Service Bus ne considère pas les messages un peu plus anciens comme une violation de la sécurité ; c'est seulement le cas des messages qui semblent postérieurs à l'heure actuelle.

Symptôme

Vous ne pouvez pas localiser un service sur le flux ATOM, même si vous savez que le service s'exécute correctement.

Cause

Le comportement par défaut du Registre du service est de ne pas exposer un service via le flux ATOM.

Solution

Définissez le point de terminaison pour qu'il puisse être détecté, comme décrit dans Création Publier un service dans le registre Service Bus.

Afficher:
© 2014 Microsoft