IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dotnet Discussion :

Accès à une queue distante MSMQ publique


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Par défaut Accès à une queue distante MSMQ publique
    Bonjour,

    J'utilise des queues MSMQ pour faire transiter des messages de manière sûre. Lors de mes tests, pas de souci, mes queues sont locales et tout se passe bien.

    Quand vient le déploiement sur plusieurs machines, je ne parviens pas à me connecter à la queue publique d'une machine distante (Queue not found ou refus de connexion pour raison de droits même si l'utilisateur courant est administrateur de la machine distante) :
    System.Messaging.MessageQueueException (0x80004005): Accès au système Message Queuing refusé.
    à System.Messaging.MessageQueue.Create(String path, Boolean transactional)
    Je n'ai jusqu'ici trouvé aucune documentation ni aucun exemple d'utilisateur de queue publique (tout le monde dit "c'est pareil" mais le fait est que non). Avez-vous des pistes ou des références sur le sujet ?

    Merci d'avance !

    La configuration de mon application :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <configuration>
      <appSettings>
        <add key="QueueName" value="MaMachine\MaQueue"/>
      </appSettings>
     
      <system.serviceModel>
        <bindings>
          <netMsmqBinding>
            <binding name="msmqConfig"
                     maxRetryCycles="2"
                     retryCycleDelay="00:05:00">
              <security mode="None" />
            </binding>
          </netMsmqBinding>
        </bindings>
     
        <client>
          <endpoint
              address="net.msmq://MaMachine/MaQueue"
              binding="netMsmqBinding"
              bindingConfiguration="msmqConfig"
              contract="MonAppli.IMonInterface" />
        </client>
      </system.serviceModel>
     
    </configuration>

    Extrait de code :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    string queue = ConfigurationManager.AppSettings["QueueName"];
    if (!MessageQueue.Exists(queue)) {
      _logger.Info(String.Format("Création de la queue {0}.", _queue));
      MessageQueue.Create(queue, true);
    }

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Par défaut
    Histoire de partager mes avancées...

    Le problème de droits ne venait pas de l'utilisateur distant mais de l'utilisateur (Network Service) exécutant le service Message Queuing. Celui-ci n'avait pas le droit sur la queue en question. Il m'a suffit de le rajouter.

    Néanmoins, il n'a pas pour autant le droit de créer une queue. Je l'ai donc créée à la main sur le serveur gérant les queues (pour créer une queue publique, il faut que le serveur soit dans le domaine Active Directory) et j'ai donné l'accès complet à la queue à l'utilisateur Network Service.

    Remarque : après sa création à la main, il faut quelques minutes à la queue avant d'être visible (et donc paramétrable).

    Prochaine étape : gestion fine des droits d'accès.

    Je reste preneur de toute documentation sur le sujet (qui a l'air malheureusement inexistante, livres inclus).

Discussions similaires

  1. Limiter les connexions à une Queue distante
    Par LeRiton dans le forum Wildfly/JBoss
    Réponses: 3
    Dernier message: 30/12/2010, 14h08
  2. Boucle d'accès à une registry distante
    Par yamino dans le forum Débuter
    Réponses: 1
    Dernier message: 22/07/2008, 13h15
  3. [vb.net] accèes à une base distante
    Par zitoun dans le forum SDK
    Réponses: 1
    Dernier message: 13/01/2007, 20h47
  4. acces à une base distante
    Par fredinarium dans le forum Installation
    Réponses: 3
    Dernier message: 08/09/2005, 20h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo